Introducción
En este artículo, repasaremos cómo crear un archivo de intercambio. Un archivo de intercambio es útil en los casos en que su servidor en la nube no tiene suficiente memoria para realizar las tareas o procesos que se están ejecutando. Esto puede hacer que su servidor comience a eliminar procesos para liberar algo de memoria, ¡algunos de los cuales pueden ser importantes, como una base de datos o un servidor web!
Un archivo de intercambio puede ayudarlo a evitar estos problemas al utilizar el espacio del disco duro como memoria virtual cuando la memoria normal no está disponible de inmediato.
Agregar un archivo de intercambio en Ubuntu 20.04
Primero debemos asegurarnos de que no hay ningún archivo de intercambio actual en uso. La forma más fácil de determinar esto es ejecutar el siguiente comando:
free -m
Salida:
total used free shared buffers cached Mem: 3834 3448 385 681 173 1424
El resultado nos mostrará cuánta memoria tiene el sistema y cuánto se ha configurado el intercambio, si es que hay alguno. En este caso, el servidor se acaba de aprovisionar y no se ha configurado ningún intercambio.
En el siguiente paso, elegiremos la cantidad de espacio que asignaremos al intercambio. Esto se puede lograr con el siguiente comando:
dd if=/dev/zero of=/swapfile bs=1024 count=2048k
En este ejemplo, crearemos un archivo de intercambio de 2 GB. Hay 1024 megabytes en 1 gigabyte, por lo que para lograr 2 GB, usaré 2048k como conteo.
NOTA :¡No olvide incluir la "k" al final, de lo contrario, estará creando un archivo de intercambio de 2 megabytes! Esto se debe a que el tamaño de bytes se multiplica por la cantidad especificada en el bloque de conteo.
Ahora debemos asignar el archivo de intercambio que acabamos de crear al sistema operativo:
mkswap /swapfile
mkswap /archivo de intercambio
Habilite el archivo de intercambio y verifique que esté asignado:
swapon /swapfile free -m
Salida:
total used free shared buffers cached Mem: 3834 3448 385 681 173 1424 Swap: 2017 0 2017 The output of “free -m” should now show the amount you configured for swap. Next, we need to configure the system to enable the swap file every time the server boots. Otherwise, you would need to manually enable it every time you reboot the server using the “swapon /swapfile” command. To accomplish this we will need to edit the /etc/fstab file using a text editor of your choice. Add the following line to the end of the file:
/swapfile none swap sw 0 0
/swapfile ninguno intercambio sw 0 0
Una vez que esto se haya completado, guarde sus cambios y cierre el archivo.
Una vez que se complete esto, aún deberá configurar el "intercambio". De forma predeterminada, la mayoría de las implementaciones de Linux tienen un valor predeterminado de intercambio de 60. Esto significa que si se usa el 40 % de la RAM y el 60 % no se usa, se usará el archivo de intercambio. Dado que todos nuestros servidores en la nube están en SSD, nuestra capacidad de intercambio predeterminada se establece en 0. Lo que esto significa es que si se usa el 100 % de toda la RAM, entonces, y solo entonces, se usa el archivo de intercambio.
Ejecute el comando:
nano /etc/sysctl.conf
Luego cambie o agregue esta línea:
vm.swappiness = 10
Si necesita un intercambio ligeramente superior, puede jugar con este número. Trate de no subir más de 20 o 30. Recomendamos que el swappiness se establezca bajo por múltiples razones. La primera razón por la que recomendamos un intercambio bajo es que usarlo demasiado agresivamente reducirá la vida útil de los SSD. La otra razón es que si el valor de swappiness es demasiado alto, el sistema utiliza el archivo de intercambio con demasiada frecuencia. Esto puede causar conflictos de entrada/salida del sistema ya que el servidor está demasiado ocupado intercambiando cosas dentro y fuera del archivo de intercambio, en lugar de usar la RAM correctamente. En ocasiones, esto puede ralentizar el servidor más que la falta de RAM.
Luego, debe reiniciar el archivo de intercambio para que tenga efecto con la nueva configuración. Puede reiniciar el servidor o ejecutar:
swapoff -a
y
swapon -a
¡Eso es todo! Ahora tiene un archivo de intercambio persistente para su servidor en la nube.
*Nota:estos comandos también funcionarán en una implementación de CentOS*