Cómo crear y usar archivos de intercambio en Linux

Este tutorial analiza el concepto de archivo de intercambio en Linux, por qué se utiliza y sus ventajas sobre la partición de intercambio tradicional. Aprenderá a crear un archivo de intercambio o cambiar su tamaño.

¿Qué es un archivo de intercambio en Linux?

Un archivo de intercambio permite a Linux simular el espacio en disco como RAM. Cuando su sistema comienza a quedarse sin RAM, utiliza el espacio de intercambio e intercambia parte del contenido de la RAM en el espacio del disco. Esto libera la RAM para servir procesos más importantes. Cuando la RAM vuelve a estar libre, intercambia los datos del disco. Recomiendo leer este artículo para obtener más información sobre el intercambio en Linux.

Tradicionalmente, el espacio de intercambio se utiliza como una partición separada en el disco. Cuando instala Linux, crea una partición separada solo para intercambio. Pero esta tendencia ha cambiado en los últimos años.

Con el archivo de intercambio, ya no necesita una partición separada. Usted crea un archivo bajo root y le dice a su sistema que lo use como espacio de intercambio.

Con la partición de intercambio dedicada, cambiar el tamaño del espacio de intercambio es una pesadilla y una tarea imposible en muchos casos. Pero con los archivos de intercambio, puede cambiar su tamaño a su gusto.

Han comenzado las versiones recientes de Ubuntu y algunas otras distribuciones de Linux usando el archivo de intercambio por defecto. Incluso si no crea una partición de intercambio, Ubuntu crea un archivo de intercambio de alrededor de 1 GB por sí solo.

Veamos más sobre archivos de intercambio.

Compruebe el espacio de intercambio en Linux

Antes de comenzar a agregar espacio de intercambio, sería una buena idea verificar si ya tiene espacio de intercambio disponible en su sistema.

Puedes comprobarlo con el comando libre en Linux. En mi caso, mi Dell XPS tiene 14 GB de intercambio.

free -h
              total        used        free      shared  buff/cache   available
Mem:           7.5G        4.1G        267M        971M        3.1G        2.2G
Swap:           14G          0B         14G

El comando gratuito le da el tamaño del espacio de intercambio, pero no le dice si es una partición de intercambio real o un archivo de intercambio. El comando swapon es mejor en este sentido.

swapon --show
NAME           TYPE       SIZE USED PRIO
/dev/nvme0n1p4 partition 14.9G   0B   -2

Como puede ver, tengo 14,9 GB de espacio de intercambio y está en una partición separada. Si fuera un archivo de intercambio, el tipo habría sido archivo en lugar de partición.

swapon --show
NAME      TYPE SIZE USED PRIO
/swapfile file   2G   0B   -2

Si no tiene un espacio de intercambio en su sistema, debería mostrar algo como esto:

free -h
              total        used        free      shared  buff/cache   available
Mem:           7.5G        4.1G        267M        971M        3.1G        2.2G
Swap:           0B          0B         0B

El comando swapon no mostrará ningún resultado.

Crear archivo de intercambio en Linux

Si su sistema no tiene espacio de intercambio o si cree que el espacio de intercambio no es lo suficientemente adecuado, puede crear un archivo de intercambio en Linux. También puede crear varios archivos de intercambio.

Veamos cómo crear un archivo de intercambio en Linux. Estoy usando Ubuntu 18.04 en este tutorial, pero también debería funcionar en otras distribuciones de Linux.

Paso 1: crea un nuevo archivo de intercambio

Lo primero es lo primero, cree un archivo con el tamaño de espacio de intercambio que desee. Digamos que quiero agregar 1 GB de espacio de intercambio a mi sistema. Utilice el comando de fallocate para crear un archivo de 1 GB de tamaño.

sudo fallocate -l 1G /swapfile

Se recomienda permitir que solo root lea y escriba en el archivo de intercambio. Incluso verá una advertencia como “permisos inseguros 0644, 0600 sugeridos” cuando intente utilizar este archivo para el área de intercambio.

sudo chmod 600 /swapfile

Tenga en cuenta que el nombre del archivo de intercambio puede ser cualquier cosa. Si necesita varios espacios de intercambio, puede darle cualquier nombre apropiado como swap_file_1, swap_file_2, etc. Es solo un archivo con un tamaño predefinido.

Paso 2: marca el nuevo archivo como espacio de intercambio

Debe informar al sistema Linux que este archivo se utilizará como espacio de intercambio. Puedes hacer eso con mkswap herramienta.

sudo mkswap /swapfile

Debería ver una salida como esta:

Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=7e1faacb-ea93-4c49-a53d-fb40f3ce016a

Paso 3: habilita el archivo de intercambio

Ahora su sistema sabe que el archivo de intercambio de archivos se puede utilizar como espacio de intercambio. Pero aún no está hecho. Debe habilitar el archivo de intercambio para que su sistema pueda comenzar a usar este archivo como intercambio.

sudo swapon /swapfile

Ahora, si verifica el espacio de intercambio, debería ver que su sistema Linux lo reconoce y lo usa como el área de intercambio:

swapon --show
NAME       TYPE   SIZE USED PRIO
/swapfile  file 1024M   0B   -2

Paso 4: hacer que los cambios sean permanentes

Todo lo que hayas hecho hasta ahora es temporal. Reinicie su sistema y todos los cambios desaparecerán.

Puede hacer que los cambios sean permanentes agregando el archivo de intercambio recién creado al archivo / etc / fstab.

Siempre es una buena idea hacer una copia de seguridad antes de realizar cambios en el archivo / etc / fstab.

sudo cp /etc/fstab /etc/fstab.back

Ahora puede agregar la siguiente línea al final del archivo / etc / fstab:

/swapfile none swap sw 0 0

Puede hacerlo manualmente usando un editor de texto de línea de comando o simplemente use el siguiente comando:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Ahora tienes todo en su lugar. Su archivo de intercambio se utilizará incluso después de reiniciar su sistema Linux.

Ajustar el intercambio

Los parámetros de intercambio determinan la frecuencia con la que se debe utilizar el espacio de intercambio. El valor de intercambio varía de 0 a 100. Un valor más alto significa que el espacio de intercambio se utilizará con más frecuencia.

El intercambio predeterminado en el escritorio de Ubuntu es 60, mientras que en el servidor es 1. Puede verificar el intercambio con el siguiente comando:

cat /proc/sys/vm/swappiness

¿Por qué los servidores deberían usar un intercambio bajo? Debido a que el intercambio es más lento que la RAM y para un mejor rendimiento, la RAM debe utilizarse tanto como sea posible. En los servidores, el factor de rendimiento es crucial y, por lo tanto, el intercambio es lo más bajo posible.

Puede cambiar el intercambio sobre la marcha utilizando el siguiente comando systemd:

sudo sysctl vm.swappiness=25

Sin embargo, esto lo cambia solo temporalmente. Si desea que sea permanente, puede editar el archivo /etc/sysctl.conf y agregar el valor de intercambio al final del archivo:

vm.swappiness=25

Cambiar el tamaño del espacio de intercambio en Linux

Hay un par de formas de cambiar el tamaño del espacio de intercambio en Linux. Pero antes de que veas eso, debes aprender algunas cosas a su alrededor.

Cuando le pide a su sistema que deje de usar un archivo de intercambio para el área de intercambio, transfiere todos los datos (páginas para ser precisos) de regreso a la RAM. Por lo tanto, debería tener suficiente RAM libre antes de cambiar.

Es por eso que una buena práctica es crear y habilitar otro archivo de intercambio temporal. De esta manera, cuando cambie el área de intercambio original, su sistema utilizará el archivo de intercambio temporal. Ahora puede cambiar el tamaño del espacio de intercambio original. Puede eliminar manualmente el archivo de intercambio temporal o dejarlo como está y se eliminará automáticamente en el próximo arranque.

Si tiene suficiente RAM libre o si creó un espacio de intercambio temporal, cambie su archivo original.

sudo swapoff /swapfile

Ahora puede usar el comando Fallocate para cambiar el tamaño del archivo. Digamos que lo cambia a 2 GB de tamaño:

sudo fallocate -l 2G /swapfile

Ahora vuelva a marcar el archivo como espacio de intercambio:

sudo mkswap /swapfile

Y enciende el intercambio de nuevo:

sudo swapon /swapfile

También puede optar por tener varios archivos de intercambio al mismo tiempo.

Eliminar archivo de intercambio en Linux

Es posible que tenga sus razones para no usar el archivo de intercambio en Linux. Si desea eliminarlo, el proceso es similar al que acaba de ver al cambiar el tamaño del intercambio.

Primero, asegúrese de tener suficiente RAM libre. Ahora cambie el archivo:

sudo swapoff /swapfile

El siguiente paso es eliminar la entrada correspondiente del archivo / etc / fstab.

Y al final, puede eliminar el archivo para liberar espacio:

sudo rm /swapfile

¿Intercambias?

Creo que ahora tiene una buena comprensión del concepto de archivo de intercambio en Linux. Ahora puede crear fácilmente archivos de intercambio o cambiar su tamaño según sus necesidades.

Si tiene algo que agregar sobre este tema o si tiene alguna duda, deje un comentario a continuación.