Lo que necesita saber sobre el intercambio de particiones en Linux

Cuando instale Linux, el proceso de instalación probablemente agregará una partición de intercambio al disco duro junto con las particiones para el propio Linux. Pero ¿para qué se usa esta partición de intercambio y es realmente necesaria?

¿Qué es el swap?

Cuando un sistema operativo multitarea se queda sin memoria física, no puede iniciar nuevos procesos o asignar más memoria a los procesos existentes. Para resolver este problema, se reserva un bloque especial de espacio en el almacenamiento local (a menudo el disco duro) para que actúe como área de retención temporal para los procesos que no se están ejecutando actualmente. El sistema operativo «intercambia» el proceso inactivo de la memoria al disco duro. Esto libera la memoria para nuevos trabajos. Cuando el proceso inactivo vuelva a estar activo, se cambiará de nuevo del almacenamiento local a la memoria. Este procedimiento se conoce como swapping.

¿Es realmente necesario el espacio de intercambio?

¿Es técnicamente necesario el espacio de intercambio? No. Linux puede funcionar sin él y en algunas situaciones, como en el caso de las soluciones integradas, Linux puede funcionar sin intercambio. Si el sistema operativo entra en una situación en la que no tiene suficiente memoria, entrará en pánico y se detendrá. Si hay suficiente RAM física, la máquina funcionará sin problemas.

¿Es prácticamente necesario el espacio de intercambio? Sí. Aunque el intercambio ralentiza un ordenador (ya que leer y escribir en un disco duro es mucho más lento que acceder a la RAM) y tener tanta memoria física a bordo es la mejor solución para evitar el intercambio, existen situaciones legítimas en las que el intercambio es deseable. Por ejemplo, durante el arranque del sistema, puede haber procesos que se ejecutan (y por lo tanto consumen memoria del sistema) pero que luego duermen eficazmente durante períodos de tiempo muy largos. O una memoria que se asigna, se escribe y luego no se vuelve a utilizar. En estas situaciones, el algoritmo de intercambio comenzará a migrar esta memoria al disco duro, liberando así una valiosa memoria del sistema. Esto realmente asegura que la máxima cantidad de RAM esté disponible en todo momento y, por lo tanto, aumenta el rendimiento.

Lo que necesita saber sobre el intercambio de particiones en Linux

En máquinas que no tienen suficiente RAM física para que todo resida en la memoria, entonces el uso del espacio de intercambio es esencial.

Para completar, vale la pena mencionar que Linux también tiene un subsistema llamado Out-Of-Memory Killer (OOM), que en lugar de detener el kernel cuando se queda sin memoria, comenzará a matar los procesos para liberar recursos. Sus acciones son configurables.

¿Cuánto espacio swap debo asignar?

No hay una regla absoluta y como el espacio en el disco duro es barato (dólar por Gigabyte) es mejor asignar demasiado que demasiado poco espacio. Como regla general, debe tener dos o tres veces la cantidad de espacio de intercambio como memoria física.

Adición de swap sin expandir la partición swap

Hay dos maneras de añadir espacio swap a un sistema sin alterar la partición swap existente. Una forma es usar una partición swap en otra unidad, la otra es usar un archivo swap.

Para usar otro disco duro, cree una partición de tipo «Linux swap» (código 82) y luego ejecute el comando «mkswap» para preparar el espacio de intercambio:

mkswap /dev/sdb2

Donde /dev/sdb2 es el nombre de la partición que creó. Para utilizar el espacio swap inmediatamente, utilice el comando «swapon»:

swapon /dev/sdb2

Utilice «swapon -s» para obtener una lista de los espacios de intercambio utilizados actualmente. Para añadir permanentemente el espacio de intercambio al sistema, necesitará editar el archivo /etc/fstab y añadir una línea similar a ésta:

/dev/sdb2 none swap sw 0 0

Si su sistema utiliza identificadores únicos para nombrar los discos, utilice el comando blkid para obtener una lista de los identificadores de los dispositivos. La línea para montar el espacio de intercambio en /etc/fstab sería algo así:

UID=036da155-1ea1-4392-b8d4-700f65aaa1ead none swap sw 0 0>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i).

Para usar un archivo para intercambiar, cree un archivo grande en blanco (usando dd) en el sistema de archivos que desea usar para intercambiar. Por ejemplo, para crear un archivo de 1 GB, escriba:

dd if=/dev/zero of=/store/swapfile bs=1024 count=1048576

Donde /store/swapfile es la ruta al archivo swap en el sistema de archivos deseado.

Al igual que con la partición swap adicional, el archivo ahora necesita ser preparado con mkswap y luego usado con swapon. También necesita ser añadido al fichero /etc/fstab. El procedimiento es exactamente el mismo que el anterior, pero necesita usar /store/swapfile en lugar de /dev/sdb2 como parámetro de espacio de intercambio.

Intercambio

El kernel de Linux puede ser modificado para definir cuán agresivamente debe tratar de intercambiar procesos fuera de la memoria. Esta tendencia está controlada por una variable del núcleo llamada swappiness. Una swappiness de 0 significa que el núcleo evitará el intercambio tanto como sea posible, mientras que 100 significa que el núcleo será agresivo en la forma en que utiliza el espacio de intercambio. La configuración predeterminada para muchas distribuciones de Linux es 60. Es posible cambiar el número dinámicamente usando este comando:

sudo sysctl vm.swappiness=10

Para establecer permanentemente un valor, necesita cambiar (o añadir, si no existe) la variable vm.swappiness en el archivo /etc/sysctl.conf.

Háganos saber si tiene alguna pregunta sobre el intercambio en Linux.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *