Agregar espacio de intercambio (swap) a su servidor es una excelente opción para compensar los errores de falta de memoria. Linux permite a los usuarios agregar espacio de intercambio en su sistema cuando la cantidad de RAM en el sistema está llena. Al crear una partición de espacio dedicada, permitirá que su memoria física funcione sin problemas sin preocuparse demasiado por el poco espacio en disco.
Descripción general de Swap
El espacio de intercambio en Linux es una parte de la memoria virtual utilizada cuando la memoria física se queda sin espacio. Especialmente cuando se trabaja con un programa o aplicación grande donde surge la necesidad de memoria adicional, el espacio de intercambio es una opción ideal para albergar páginas de memoria temporalmente inactivas. La creación de un espacio de intercambio permite a los usuarios almacenar datos cuando se ejecutan programas grandes y, por lo tanto, reduce las caídas de las aplicaciones. Eso significa que si el sistema necesita más recursos de memoria y la RAM está llena, todas las páginas inactivas en la memoria se trasladan al espacio de intercambio y los programas pueden ejecutarse sin interrupciones.
¿Qué cantidad de swap necesito?
La cantidad de espacio de intercambio depende de varios factores. Estos incluyen la RAM disponible, la carga impuesta y si se requiere que el sistema admita la función de hibernación (suspensión a disco). Consulte la siguiente tabla para verificar el espacio de intercambio recomendado según el espacio disponible en la RAM:
|
N.º |
Espacio de RAM disponible |
Espacio de intercambio recomendado |
|
1. |
1GB |
1GB |
|
2. |
2GB |
1GB |
|
3. |
3GB |
2GB |
|
4. |
4GB |
2GB |
|
5. |
5GB |
2GB |
|
6. |
6GB |
2GB |
|
7. |
8GB |
3GB |
En este tutorial, le guiaremos a través de los pasos para agregar espacio de intercambio en Ubuntu 20.04. ¡Comencemos!
Requisitos previos
Para seguir este tutorial, necesitará:
- Ubuntu instalado en su sistema.
- Una cuenta no root de usuario configurada con privilegios de sudo en su máquina.
Paso 1: Verificación de la información de swap
El tamaño del espacio de intercambio depende de la RAM del sistema. Por lo tanto, es esencial verificar la disponibilidad de espacio de intercambio en su sistema antes de crear uno. Escriba el siguiente comando para verificar si el sistema tiene algún swap configurado:
|
1 |
$ sudo swapon --show |
Si se muestra una salida, significa que hay espacio disponible en su sistema para crear espacio de intercambio. Sin embargo, si no hay salida, es una señal que indica que no hay suficiente espacio disponible para agregar espacio de intercambio.
Use la utilidad free para verificar que no haya ningún swap activo:
|
1 |
$ free -h |
Verá la salida como una fila de swap nula:
Paso 2: Verificación de la disponibilidad de la partición del disco duro
De manera similar a la verificación de la disponibilidad del sistema, ahora verifiquemos nuestro uso actual del disco para asegurarnos de que tenemos suficiente espacio. Use el comando df para verificar la disponibilidad de la partición del disco duro:
|
1 |
df -h |
El dispositivo con / en la columna Mounted on es nuestro disco que está 11% libre. Verá la salida:
Después de verificar los requisitos del sistema, sigamos adelante y creemos un archivo de intercambio en nuestro sistema de archivos.
Paso 3: Crear un archivo de intercambio
Para crear un archivo de intercambio en nuestro sistema de archivos, asigne un nombre de archivo como swapfile en el directorio raíz (/) utilizando el programa fallocate. La asignación del tamaño del archivo depende de sus necesidades. Para mantener el tutorial simple y fácil de entender, estamos creando un archivo de 1G y dedicando 1G de RAM. Use el comando sudo para crear un archivo de intercambio:
|
1 |
sudo fallocate -l 1G /swapfile |
A continuación, escriba este comando para verificar el espacio reservado:
|
1 |
$ ls -lh /swapfile |
Ahora que hemos creado un espacio de intercambio en nuestro sistema, habilitémoslo en el siguiente paso.
Paso 4: Habilitar el archivo de intercambio
Once we have the correct size available, let’s convert it into swap space. For security reasons, it is crucial to make our file accessible to root users and prevent accessibility from normal users. We’ll add restrictions so that users with root puedan ver el archivo y leer su contenido. Use el siguiente comando de root para que el archivo solo sea accesible para los usuarios root :
|
1 |
sudo chmod 600 /swapfile |
Luego, use el comando ls para verificar los cambios:
|
1 |
$ ls -lh /swapfile |
Como puede ver, solo el usuario root tiene habilitados los indicadores de lectura y escritura:
Después de eso, marque el archivo como espacio de intercambio:
|
1 |
sudo mkswap /swapfile |
Verá la salida:
Después de eso, habilite el archivo de intercambio y permita que nuestro sistema comience a usarlo:
|
1 |
sudo swapon /swapfile |
A continuación, verifique la disponibilidad del swap:
|
1 |
$ sudo swapon --show |
Verá el siguiente resultado:
Como hicimos en el Paso 1, comprobaremos el espacio de la utilidad free una vez más:
|
1 |
free -h |
Verá el siguiente resultado:
Nuestro swap se ha configurado correctamente y nuestro sistema operativo comenzará a usarlo según sea necesario. En el siguiente paso, haremos que el archivo de intercambio sea permanente.
Paso 5: Hacer que el archivo de intercambio sea permanente
Por defecto, el servidor no conservará la configuración de swap automáticamente cada vez que reiniciemos. Para cambiar la configuración predeterminada y estar seguros, agregaremos el archivo de intercambio a nuestro archivo /etc/fstab. Use el comando sudo para hacer una copia de seguridad del archivo /etc/fstab:
|
1 |
sudo cp /etc/fstab /etc/fstab.bak |
A continuación, agregue la información del archivo de intercambio al final de su archivo /etc/fstab escribiendo:
|
1 |
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab |
Después de eso, revisemos algunas configuraciones y realicemos modificaciones para poder ajustar nuestro espacio de swap.
Paso 6: Modificación de la configuración de swap
En este paso, configuraremos los ajustes y realizaremos algunas modificaciones. Ajustemos la propiedad swappiness y cambiemos la presión de la caché.
-
Ajustar la propiedad Swappiness
El parámetro swappiness es un parámetro del núcleo ajustable. Cambia el equilibrio entre el intercambio de la memoria de ejecución y explica el intercambio de datos entre el traslado de datos fuera de la RAM al espacio de swap. Este valor paramétrico se expresa en porcentaje, que va desde 0 hasta 100.
El valor vm.swappiness tiene una influencia directa en el comportamiento del swappiness del sistema. Cuanto mayor sea el vm.swappiness, más intercambiará el sistema y viceversa. Si el valor es cercano a cero, el núcleo no intercambiará datos, lo que puede provocar una reducción del rendimiento. Permitir que su sistema no dependa mucho del swap es una excelente manera de mejorar su rendimiento y obtener una capacidad de respuesta sólida.
Alternativamente, un vm.swappiness que esté más cerca de 100 intentará poner más datos en el swap y menos en la memoria física. A diferencia de un valor de vm.swappiness bajo o mediocre, un alto intercambio del sistema tiene efectos muy indeseables cuando hay grandes cantidades de datos intercambiándose activamente dentro y fuera de la RAM.
Verifique el valor actual de swappiness escribiendo:
|
1 |
cat /proc/sys/vm/swappiness |
Verá el siguiente resultado:
También puede establecer el swappiness de su elección utilizando el comando sysctl. Establezcamos el valor de swappiness en 15 escribiendo:
|
1 |
sudo sysctl vm.swappiness = 15 |
Verá el siguiente resultado:
Hasta que se reinicie el sistema, la configuración permanecerá tal cual. Agregue la línea a nuestro archivo /etc/sysctl.conf para establecer el valor automáticamente al reiniciar:
|
1 |
sudo nano /etc/sysctl.conf |
Puede agregar el siguiente código en la parte inferior:
|
1 |
Vm.swappiness = 15 |
Luego, guarde y cierre el archivo.
-
Ajustar la presión de la caché
A continuación, vamos a modificar vfs_cache_pressure que se encargará de la información de inode y dentry información sobre otros datos. Esta configuración de vfs_cache_pressure settings también controla la tendencia del núcleo a recuperar la memoria utilizada para el almacenamiento en caché del directorio. Navegue por el sistema de archivos proc nuevamente para verificar el valor actual:
|
1 |
cat /proc/sys/vm/vfs_cache_pressure |
Verá el siguiente resultado:
Como la configuración ya está hecha, nuestro sistema eliminará la información de inode de la caché. Establezcamos el sysctl vm.vfs_cache_pressure en una configuración más estable como esta:
|
1 |
sudo sysctl vm.vfs_cache_pressure = 60 |
Verá el siguiente resultado:
De manera similar a lo que hicimos en nuestra configuración de swappiness, también podemos cambiar la configuración aquí:
|
1 |
sudo nano /etc/sysctl.conf |
En la parte inferior, inserte una línea que indique el nuevo valor que creó:
|
1 |
Vm.vfs_cache_pressure = 60 |
Finalmente, guarde y cierre el archivo.
Conclusión
Puede agregar espacio de intercambio como una partición de intercambio dedicada, un archivo de intercambio o una combinación de ambos. Puede crear espacio de intercambio y aprovechar sus beneficios para ejecutar aplicaciones sin problemas sin preocuparse demasiado por las advertencias de memoria insuficiente. Si bien la creación de espacio de intercambio es una ventaja adicional en sistemas con espacio de memoria limitado, no debe tratarse como una alternativa a más espacio de RAM. Recuerde que el espacio de intercambio se encuentra en un disco duro, por lo tanto, puede experimentar un tiempo de acceso ligeramente lento en comparación con la memoria física.
Aquí tiene más tutoriales en nuestro blog que le ayudarán a empezar a trabajar con sus servidores Ubuntu:
- Configuración de un montaje NFS en Ubuntu 20.04
- Instalación de Nginx en Ubuntu 18.04
- Configuración de un firewall con UFW en Ubuntu 18.04
¡Feliz informática!










Comentarios
Aún no hay comentarios. Sea el primero.