Swap es un espacio en un disco que se usa cuando la cantidad de RAM física está llena. Cuando un sistema Linux se queda sin RAM, las páginas inactivas se mueven de la RAM al espacio de intercambio.
El espacio de intercambio puede tomar la forma de una partición de intercambio dedicada o un archivo de intercambio. En la mayoría de los casos, cuando se ejecuta Linux en una máquina virtual, no hay una partición de intercambio, por lo que nuestra única opción es crear un archivo de intercambio.
Este tutorial ha sido probado en sistemas Linux con Ubuntu 18.04 y CentOS 7, pero debería funcionar con cualquier otra distribución de Linux.
Cómo agregar el archivo de intercambio
Siga estos pasos para agregar 1 GB de intercambio al servidor. Si desea agregar 2 GB en lugar de 1 GB, reemplace 1G
por 2G
.
- Cree un archivo que se utilizará para el intercambio.
sudo fallocate -l 1G /swapfile
Si faillocate
no está instalado o si recibe un mensaje de error que dice que fallocate failed: Operation not supported
, puede usar el siguiente comando para crear el archivo de intercambio:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
- Establezca los permisos correctos.
Solo el usuario root debería poder escribir y leer el archivo de intercambio. Para establecer el tipo de permisos correcto:
sudo chmod 600 /swapfile
- Configure un área de intercambio.
Utilice la mkswap
para configurar el archivo como un área de intercambio de Linux:
sudo mkswap /swapfile
- Habilite el intercambio.
Active el archivo de intercambio con el siguiente comando:
sudo swapon /swapfile
Para que el cambio sea permanente, abra el archivo /etc/fstab
y agregue la siguiente línea:
/swapfile swap swap defaults 0 0
- Verifique el estado del intercambio.
Para verificar que el intercambio está activo, podemos usar el free
o swapon
como se muestra a continuación:
sudo swapon --show
NAME TYPE SIZE USED PRIO
/swapfile file 1024M 507.4M -1
sudo free -h
total used free shared buff/cache available
Mem: 488M 158M 83M 2.3M 246M 217M
Swap: 1.0G 506M 517M
Ajustar el valor de intercambio
Swappiness es una propiedad del kernel de Linux que define la frecuencia con la que el sistema utilizará el espacio de intercambio. El intercambio puede tener un valor entre 0 y 100. Un valor bajo hará que el núcleo intente evitar el intercambio siempre que sea posible, mientras que un valor más alto hará que el núcleo utilice el espacio de intercambio de manera más agresiva.
El valor de intercambio predeterminado es 60
. Puede verificar el valor de intercambio actual escribiendo el siguiente comando:
cat /proc/sys/vm/swappiness
60
Si bien el valor de intercambio de 60 está bien para la mayoría de los sistemas Linux, puede ser necesario establecer un valor más bajo para los servidores de producción.
Por ejemplo, para establecer el valor de intercambio en 10, escriba:
sudo sysctl vm.swappiness=10
Para conservar este parámetro entre reinicios, agregue la siguiente línea al archivo /etc/sysctl.conf
sudo nano /etc/sysctl.conf
vm.swappiness=10
El valor de intercambio óptimo depende de la carga de trabajo del sistema y de cómo se utiliza la memoria. Es necesario ajustar este parámetro en pequeños incrementos para encontrar un valor óptimo.
Cómo quitar el Swap
Si por alguna razón desea deshabilitar y eliminar el archivo de intercambio, siga estos pasos:
Primero, deshabilite el intercambio escribiendo:
sudo swapoff -v /swapfile
Elimine la entrada del archivo de intercambio /swapfile swap swap defaults 0 0
del /etc/fstab
.
Finalmente, elimine el archivo de intercambio real usando el comando rm
sudo rm /swapfile
Conclusión
Ha aprendido a crear un archivo de intercambio y a activar y configurar el espacio de intercambio en su sistema Linux.