Cómo conectar SWAP para un servidor virtual: ventajas e inconvenientes de SWAP
09:47, 08.11.2022
SWAP es un mecanismo importante que proporciona una gestión razonable de la memoria del servidor virtual al mover algunos datos de la RAM al SSD. La tecnología es relevante cuando un sistema necesita una cantidad de RAM que el servidor no tiene físicamente. La activación del intercambio le permite poner en una partición especial de la unidad aquellos datos que se utilizan con menos frecuencia.
Los usuarios experimentados de Linux saben que un gran número de páginas utilizadas por los programas en el arranque sólo se necesitan durante la inicialización, y ya no se utilizan a lo largo de la sesión de trabajo. SWAP permite que estas páginas no utilizadas se descarguen de la RAM y se trasladen al espacio de almacenamiento. Así, el intercambio es una herramienta importante para optimizar los sistemas de servidores.
Ventajas de SWAP
La principal ventaja de esta tecnología es la que permite:
- Reducir los costes de mantenimiento del servidor. Es decir, puede tomar un plan de servidor privado virtual más barato con insuficiente RAM, configurar SWAP, y así estabilizar el servidor.
- Optimizar el rendimiento del servidor liberando páginas de memoria.
En los servidores con poca o ninguna competencia por la memoria, el beneficio de esta tecnología será pequeño: a lo sumo podrá intercambiar memoria anónima que las aplicaciones y los servicios rara vez utilizan. Esto aumentará el porcentaje de aciertos de la caché y liberará una preciosa memoria RAM en general.
La tecnología también será útil en los VPS, donde se producen picos temporales de consumo de RAM: la resistencia a este tipo de anomalías de recursos será mayor.
Desventajas de SWAP
La principal desventaja es que la RAM sigue siendo más rápida. Incluso si tiene una unidad NVMe de última generación en su servidor, la RAM seguirá manejando la información más rápidamente. Así que no abuse de la swap, tiene que tener claro qué datos son razonables para poner en esta memoria y cuáles es mejor dejar para la RAM.
Además, SWAP puede evitar que su sistema operativo llame al Out-Of-Memory Killer, y la activación de este proceso es necesaria cuando se necesita terminar una aplicación que amenaza con una caída del kernel. Estas situaciones son raras, especialmente en las versiones modernas de Linux, pero ocurren.
Creación y conexión de un archivo de intercambio SWAP
Supongamos que tiene un VPS con 2 GB de RAM sin una partición de intercambio. En este caso tenemos que crear primero un archivo de intercambio:
sudo fallocate -l 2G /mnt/swapfile
Ahora tenemos un archivo de intercambio de 2GB. Si hay problemas con fallocate, se puede recurrir al viejo comando dd:
sudo dd if=/dev/zero of=/mnt/swapfile bs=1M count=2048
El siguiente paso es asignar permisos de lectura y escritura a este archivo:
sudo chmod 600 /mnt/swapfile
Y ahora que el archivo ha sido creado y los permisos han sido establecidos como administrador, podemos decirle al sistema la ruta del archivo de intercambio:
sudo mkswap /mnt/swapfile
Ahora, Linux utilizará este archivo para cargar las páginas poco utilizadas. Conecta el archivo:
sudo swapon /mnt/swapfile
Todo lo que queda es abrir /etc/fstab en modo de edición y escribir una línea allí:
/mnt/swapfile none swap sw 0 0
Si no se hace esto, el archivo de paginación sólo estará activo hasta el próximo reinicio del servidor y entonces habrá que volver a activarlo manualmente.
¿Cómo puedo comprobar si hay un swap en el sistema?
Hay un comando sencillo para esto:
swapon --show
Cuando se active, verá información sobre el archivo de intercambio, su tamaño y el número de megabytes implicados.
De qué tamaño hay que crear un SWAP
La cuestión es que el tamaño óptimo del archivo de paginación se determina individualmente. Depende de estos factores:
- la cantidad de RAM en el VPS;
- los tipos de aplicaciones en uso, y su "voracidad";
- si el servidor está en modo de reposo.
Si tiene una máquina virtual con menos de 2 GB de RAM, lo óptimo es un tamaño de archivo SWAP 1,5 o 2 veces mayor. En máquinas con 3-4 GB de RAM, en la mayoría de los casos es suficiente un archivo de intercambio un 10-15% mayor que el tamaño de la RAM. Si tienes un VPS con 6 GB de RAM o más, un archivo de intercambio de 1-2 GB será suficiente.
Tenga en cuenta que si tiene mucha RAM, es mejor no activar el archivo de intercambio en absoluto - si su sistema no está utilizando el 100% de los recursos disponibles, simplemente no necesita el intercambio. Lo único que conseguirá es perjudicarle, ya que al mover las páginas de datos al archivo SWAP se ralentizará la velocidad de acceso a esas páginas.