Introducción. ¿Qué es y como funciona el espacio de intercambio? El espacio de memoria de intercambio o Swap es lo que se conoce como memoria virtual . La diferencia entre la memoria real y la virtual es que está última utilia espacio en la unidad de almacenamiento almacenamiento en lu!ar de un módulo de memoria. "uando la memoria real se a!ota# el sistema copia parte del contenido de esta directamente en este espacio de memoria de intercambio intercambio a $n de poder realiar otras tareas. %tiliar memoria virtual tiene como venta&a el proporcionar la memoria adicional necesaria cuando la memoria real se 'a a!otado y se tiene que continuar un proceso. "omo consecuencia consecuencia de utiliar espacio en la unidad de almacenamiento almacenamiento como memoria es que es considerablemente considerablemente más lenta. ¿"uanto espacio para memoria de intercambio se debe asi!nar al sistema? (enos de ) *+ ,-(
oble de la cantidad total de memoria ,-(.
(ás de de ) *+ ,-( ,-( (isma (isma canti cantidad dad del del total total de de memori memoria a ,-(# ,-(# más / *+. Independientemente Independientemente de la cantidad de memoria ,-( disponible# el sistema podrá traba&ar normalmente con de 0 a 1 *+ de memoria de intercambio# salvo que una aplicación o pro!rama en particular lo requiera. Los pro!ramas de instalación de la mayor2a de las distribuciones distribuciones asi!nan 'asta 0 *+ si se realia una instalación predeterminada predeterminada sin personaliar aún en sistemas con muc'a memoria ,-(. ¿"uándo se requiere aumentar la cantidad de memoria de intercambio? intercambio? "onsidere incrementar incrementar la cantidad de memoria de intercambio intercambio en los si!uientes casos3 •
4istemas en donde adquirir memoria adicional es imposible# y se está consciente que la memoria de intercambio es muchísimo más lenta que la memoria ,-(.
•
•
•
En equipos con traba&o intensivo que consume muc'a memoria 5dise6o !rá$co# por e&emplo7. 4ervidores de alto desempe6o en donde se desea contar con un amplio mar!en de espacio de intercambio para satisfacer las demandas de servicios. 4istemas que actualiaron desde una versión de núcleo /./# a una versión de núcleo /.0 o /.8.
•
4istemas donde se aumentó la cantidad de memoria ,-( y se encuentran con la problemática de cubrir la cuota m2nima de espacio de memoria de intercambio.
9rocedimientos para aumentar la cantidad de memoria de intercambio. "ambiar el tama6o de la partición. "ambiar el tama6o de las particiones es un método efectivo si 'ay espacio disponible sin particionar. 4in embar!o# representa un ries!o debido a la posibilidad de errores durante el proceso que podr2a tener como consecuencia la pérdida de datos. Este método requiere disponer de un respaldo de todos los datos importantes antes de comenar. 9uede utiliar parted o gparted desde un disco vivo. La me&or solución para un sistema que se está quedando sin memoria disponible siempre será adquirir más ,-(. -ctivar una partición de intercambio adicional. La sinta:is para dar formato a una partición como memoria de intercambio es mkswap con la opción -f para forar el procedimiento de formato# la opción -c para buscar# marcar y evitar sectores da6ados y el nombre del dispositivo como ar!umento3 m;s
dispositivo -sumiendo que dispone de una partición sin utiliar denominada @dev@sdb)/# lo si!uiente dará formato como memoria de intercambio a la partición /dev/sdb12# foranmdo el procedimiento y veri$cando sectores en busca de bloques da6ados3 m;sdispositivo En el si!uiente e&emplo se activa como partición de memoria de intercambio a la partición /dev/sdb123 s
used
free
s'ared
buFers
cac'ed
(em3
G/)G80
G)/CD8
1D11
=@H buFers@cac'e3
/01/B1
DG)C8
Swap
1!2"!1"
#
B
0B
8G0/1
1!2"!1"
9ara que esta partición se utilice como memoria de intercambio automáticamente en el si!uiente arranque del sistema# se edita el arc'ivo /etc/fstab3 vim @etc@fstab La l2nea que se deba a!re!ar lleva el si!uiente formato3 >partición
s
BB
En el si!uiente e&emplo se de$nirá como partición de memoria de intercambio a la partición /dev/sdb123 @dev@sdb)/
s
BB
-si!nar más espacio a un volumen ló!ico. 9or lo !eneral un buen administrador siempre de&ará espacio sin utiliar en un !rupo de volumen. %na venta&a de utiliar volúmenes ló!icos consiste en que se pueden a!randar con el sistema en funcionamiento y prescindir de realiar el proceso desde un disco vivo. El si!uiente escenario asume que as2 es y que el volumen ló!ico utiliado como memoria de intercambio corresponde a /dev/mapper/lv$swap. esactive la partición de memoria de de intercambio3 s
dd ifA@dev@ero ofA@s
La salida será similar a la si!uiente3 C)/BBBHB re!istros le2dos C)/BBBHB re!istros escritos C/0/11BBB bytes 5C/0 (+7 copiados# 8.08C s# DC.B (+@s E&ecute mkswap con la opción -f para forar el procedimiento de formato# la opción -c la veri$cación de sectores y /swap como ar!umento para dar formato a este mismo arc'ivo3 m;s
used
free
s'ared
G/)G80
G)/CD8
1D11
=@H buFers@cac'e3
/01/B1
DG)C8
Swap
61!72!
#
buFers B
cac'ed 0B
8G0/1
61!72!
M bien e&ecute swapon con la opción -s3 s
Nype
4ie %sed 9riority
@dev@dm=/
partition
8GG8CB1
@s
$le
C))8
B
00
=)
/B
9ara 'acer el sistema utilice permanentemente este arc'ivo como memoria de intercambio# edite el arc'ivo /etc/fstab3 vim @etc@fstab -6ada el si!uiente contenido3 @s
s
BB
Mptimiación del uso de memoria de intercambio.
Mpción vm.s
-6ada la si!uiente l2nea al $nal del arc'ivo3 vm.s
•
-umentar el valor puede me&orar al!unos escenarios donde se 'ace poco uso del sistema de arc'ivos como el caso de escritorios. 9uede empeorar el desempe6o de escenarios donde se utilia activamente el sistema de arc'ivos !eneralmente servidores pero 'abrá más memoria libre disponible y una menor probabilidad de utiliar la lenta memoria de intercambio. isminuir el valor puede empeorar al!unos escenarios donde se 'ace poco uso del sistema de arc'ivos como el caso de escritorios. 9uede me&orar el desempe6o de escenarios donde se utilia activamente el sistema de arc'ivos !eneralmente servidores donde quiá conven!a destinar más memoria cac'e para las entradas de directorio e inodos más utiliados a costa de un mayor consumo de memoria.
El si!uiente e&emplo establece un valor i!ual a )BBB para vm.vfs$cache$pressure3 sysctl =< vm.vfscac'epressureA)BBB 9ara 'acer que el cambio sea permanente edite el arc'ivo /etc/sysctl.conf . vi @[email protected] -6ada la si!uiente l2nea al $nal del arc'ivo3 vm.vfscac'epressure A )BBB -si!nación de prioridad de memoria de intercambio. Es posible dar mayor o menos prioridad de uso a los diversos arc'ivos o dispositivos para memoria de intercambio a $n de favorecer aquellos alo&ados en medios de almacenamiento más rápidos como unidades 4 tipo 4,-( o bien dispositivos creados con ram. El valor de la prioridad puede ser cualquier número entero entre B y 8CCGC. (ientras más alto sea el número# más alta será la prioridad. esactive el arc'ivo @s
s
Nype
4ie %sed 9riority
@dev@dm=/
partition
8GG8CB1
@s
$le
C))8
B
00
=)
GB
9ara 'acer permanente el cambio# edite el arc'ivo /etc/fstab3 vi @etc@fstab -6ada pri+6# a la columna de opciones del arc'ivo o dispositivo de memoria de intercambio. E&emplo3 @s
s
BB
,einicie el sistema y 'a!a nuevamente las comprobaciones e&ecutando swapon con la opci
>ue es el kernel de 8inu% y cual es su tarea? @escubre un nuevo mundo
tarin!a.net RSnete !ratis a Narin!aT y accede a contenido e:clusivoT "lic; aqu2 "ompartirN
9qui les va
>ue es el kernel de 8inu% y cual es su tarea?
Con cerca de 13 millones de lineas de codigo, El Kernel Linux es uno de los mas grandes proyectos de código abierto en el mundo.
>ue es el Gernel?
-l ;ernel o núcleo es el nivel más ba&o de soft
El kernel ó núcleo de linux se puede defnir como el coraón de este sistema operati!o.
Las funciones más importantes del mismo# aunque no las únicas# son3 W-dministración de la memoria para todos los pro!ramas y procesos en e&ecución. W-dministración del tiempo de procesador que los pro!ramas y procesos en e&ecucion utilian. WEs el encar!ado de que podamos acceder a los periféricos@elementos de
nuestra computadroa de una manera cómoda. Xasta que empeó el desarrollo de la serie /.8 del núcleo# e:istieron dos tipos de versiones del núcleo3 WYersión de produccion3 La version de produccion# era la version estable 'asta el momento. Esta version era el resultado $nal de las versiones de desarrollo o e:perimentales."uando el equipo de desarrollo del núcleo e:perimental# decidia que tenia un núcleo estable y con la su$ciente calidad# se lanaba una nueva versión de producción ó estable. Esta versión era la que se debia utiliar para un uso normal del sistema# ya que eran las versiones consideradas más estables y libres de fallos en el momento de su lanamiento. WYersión de desarrollo3 Esta versión era e:perimental y era la que utiliaban los desarrolladores para pro!ramar# comprobar y veri$car nuevas caracter2sticas# correcciones# etc. Estos núcleos solian ser inestables y no se debian usar sin saber lo que se 'acia. 8os diferentes tipos de Gernel
Xay# por supuesto# diferentes maneras de construir un núcleo y consideraciones arquitectónicas# cuando se construye desde cero. En !eneral# la mayor2a de los núcleos se dividen en tres tipos3 micro;ernel monol2tica# e '2bridos. Linu: es un ;ernel monol2tico# mientras que M4 Z 5Z[%7 y \indo
3icrokernel
%n micro;ernel adopta el enfoque de sólo administrar lo que tiene 3 "9%# memoria# y el I9". "asi todo lo demás en una computadora puede ser visto como un accesorio y se puede mane&ar en modo de usuario. Los (icronúcleos tienen una venta&a de la portabilidad# ya que no tienes que preocuparte si cambia la tar&eta de v2deo o incluso su sistema operativo# siempre y cuando el sistema operativo si!ue tratando de acceder al 'ard
9ros W 9ortabilidad W Xuella de instalar peque6a W 9eque6a 'uella de la memoria W 4e!uridad "ontras W El 'ard
Estos sistemas tienen un núcleo !rande y comple&o# que en!loba todos los servicios del sistema. Está pro!ramado de forma no modular# y tiene un rendimiento mayor que un micronúcleo. 4in embar!o# cualquier cambio a realiar en cualquier servicio requiere la recompilación del núcleo y el reinicio del sistema para aplicar los nuevos cambios. Xay diversas rami$caciones de este dise6o# que se 'an ido amoldando a nuevas necesidades. 9odemos citar el sistema de módulos e&ecutables en tiempo de e&ecución# que le brinda al modelo de núcleo monol2tico al!unas de las venta&as de un micronúcleo. ic'os módulos pueden ser compilados# modi$cados# car!ados y descar!ados en tiempo de e&ecución# de manera similar a los servicios de un micronúcleo# pero con la diferencia de que se e&ecutan en el espacio de memoria del núcleo mismo 5anillo B7. e esta forma# un bloqueo del módulo# es probable que bloquee todo el núcleo. -demás# el módulo pasa a formar un todo con el núcleo# usando la -9I del mismo# y no se emplea un sistema de mensa&es como en los micronúcleos. Este es el esquema usado por# entre otros# Linu:# Kree+4 y varios derivados de %[IZ. "abe resaltar que el paso constante de mensa&es entre los servicios del micronúcleo# es en parte responsable del pobre rendimiento de los micronúcleos. %n sistema operativo con núcleo monol2tico concentra todas las funcionalidades posibles 5plani$cación# sistema de arc'ivos# redes# controladores de dispositivos# !estión de memoria# etc7 dentro de un !ran pro!rama. El mismo puede tener un tama6o considerable# y deberá ser recompilado por completo al a6adir una nueva funcionalidad. Nodos los componentes funcionales del núcleo tienen acceso a todas sus estructuras de datos internas y a sus rutinas. %n error en una rutina puede propa!arse a todo el núcleo. La alternativa es tener una estructura de micronúcleo# donde las partes funcionales están divididas en unidades separadas con mecanismos de
comunicación estrictos entre ellos. 9ros W El acceso es más directo al 'ard
Gernel Híbrido
Nienen la capacidad de esco!er y ele!ir lo que desea e&ecutar en modo de usuario y lo que desea e&ecutar en modo supervisor. (uc'as veces cosas como los controladores de dispositivo y sistema de arc'ivos de E @ 4 se e&ecutará en modo de usuario mientras que las llamadas I9" y el servidor se mantendrá en el modo de supervisor. Esto dará lo me&or de ambos mundos# pero a menudo se requieren más traba&o del fabricante de 'ard
@onde encontrar los archivos del Gernel?
El arc'ivo del ;ernel# en %buntu# se almacena en la carpeta @boot y se llama vmlinu=version. El nombre vmlinu viene del mundo %ni: donde se utiliaba para llamar a sus núcleos simplemente U%ni:V de nuevo en los a6os 8B para Linu: comenó a llamar a su núcleo ULinu:V# cuando se desarrolló por primera ve en los a6os B. "uando la memoria virtual fue desarrollada para facilitar la capacidad de realiar múltiples tareas# UY(V se puso al frente del arc'ivo para mostrar que el ;ernel soporta la memoria virtual. urante un tiempo el núcleo de Linu: se llamo vmlinu:# pero el núcleo se 'io demasiado !rande para caber en la memoria de arranque disponibles para la ima!en del núcleo se comprimio y al $nal la : se cambió a la para mostrar el resultado comprimido con lib. Esta misma compresión no se utilia siempre# a menudo se sustituye con L](- o +]I9/# y al!unos nucleos simplemente se llaman Ima!e. La numeración de la versión será en el formato -+" donde -+ probablemente será /.8# " será su versión# y indican los parc'es o correcciones
En la carpeta @ boot también 'abrá otros arc'ivos muy importante llamado initrd.im!=versión# la versión 4ystem.map# y con$!=version. El arc'ivo initrd es utiliado como un disco ,-( peque6o que e:trae y e&ecuta el arc'ivo del ;ernel actual. El arc'ivo 4ystem.map se utilia para la !estión de la memoria antes de que el ;ernel totalmente se car!ue# y el arc'ivo de con$!uración le dice al núcleo qué opciones y módulos de car!a e&ecute al inicio. 9rquitectura del Gernel 8inu%
ebido a que el ;ernel de Linu: es monol2tico# tiene más comple&idad que en los otros tipos de ;ernels. Esta fue una caracter2stica de dise6o que estaba ba&o un poco de debate en los primeros d2as de Linu: y aún tiene al!unos de los defectos de dise6o que los núcleos monol2ticos son in'erentes a tener. %na cosa que los desarrolladores del ;ernel de Linu: 'icieron para conse!uir solucionar estas fallas es 'acer módulos del ;ernel que pueden ser car!ados y descar!ados en tiempo de e&ecución# lo que si!ni$ca que puede a!re!ar o quitar caracter2sticas de su núcleo en el momento. Esto puede ir más allá de la adición de la funcionalidad de 'ard
Los módulos del ;ernel# también conocido como un módulo del ;ernel car!ables 5L(7# son esenciales para mantener el funcionamiento del núcleo con todo el 'ard
usted puede car!ar y descar!ar los módulos sobre la marc'a con el comando modprobe. Los módulos de terceros y de codi!o cerrado están disponibles en al!unas distribuciones# como %buntu# y no puede ser instalado de forma predeterminada porque el códi!o fuente de los módulos no está disponible. Las empresas desarrolladoras de soft