
Una forma fácil de aumentar la capacidad de respuesta de tu servidor y evitar los problemas con el consumo de la memoria RAM, debido a un alto número de peticiones, es añadir un archivo de intercambio o swapfile. El archivo de intercambio es un archivo, de tamaño grande y reservado en el disco duro, donde el sistema operativo puede realizar un almacenamiento temporal de los datos que no puede retener en memoria principal o RAM debido a la falta de espacio en la misma. A simple vista es como usar una parte de tu disco duro como si fuese memoria RAM.
Esto hace que puedas aumentar la capacidad de memoria en tu servidor para poder hacer frente a una mayor carga de trabajo, pero también presenta inconvenientes, puesto que la velocidad de acceso al disco duro es muchísimo más pequeña que la velocidad de acceso a la memoria principal, por lo que la velocidad global del sistema se verá mermada cuando el sistema operativo esté haciendo uso de este archivo o área de intercambio.
Cómo comprobar si tu sistema ya posee un área o archivo de intercambio
Antes de empezar, vamos a echar un vistazo para ver si ya tenemos un archivo de intercambio activo. Aunque podemos tener múltiples archivos de intercambio o particiones de intercambio, por lo general uno suele ser suficiente.
Para ver si ya dispones de un archivo de intercambio activo, ejecuta el siguiente comando en la consola o terminal de tu sistema Linux:
1 | $ swapon -s |
Si no dispones de permisos o privilegios de administrador, deberás llamar al comando anterior, y a todos los que posteriormente veremos, precedidos del comando sudo, con lo que posteriormente el sistema te solicitará la contraseña de administrador para ejecutarlo.
1 | $ sudo swapon -s |
Si no dispones de ningún archivo de intercambio, la respuesta a la ejecución del código anterior es la siguiente:
1 | Filename Type Size Used Priority |
Así que vamos a ver como habilitar un archivo o área de intercambio en tu Ubuntu.
Cómo comprobar si tienes espacio suficiente en tu disco duro
Antes de crear nuestro área de intercambio, vamos a cerciorarnos de que disponemos de espacio suficiente en nuestro disco duro para crearla. Para ello, puedes echar un vistazo a una de nuestras publicaciones anteriores en las que te mostrábamos las distintas formas de conocer los datos de particiones y discos de tu sistema Linux.
De entre las formas de conocer dicho espacio libre, nosotros vamos a usar el siguiente comando:
1 | $ df -h |
lo cual nos da una respuesta tal que así:
1 2 3 4 5 6 7 8 9 | Filesystem Size Used Avail Use% Mounted on udev 236M 0 236M 0% /dev tmpfs 49M 5.6M 44M 12% /run /dev/vda1 20G 7.9G 12G 41% / tmpfs 245M 0 245M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 245M 0 245M 0% /sys/fs/cgroup tmpfs 49M 0 49M 0% /run/user/0 |
Por lo que podemos ver que tenemos varios gigas aún disponibles en nuestra partición principal /dev/vda1.
Cómo crear y activar un archivo de intercambio o swapfile en Ubuntu
Para crear nuestro archivo de intercambio, o swapfile, que en este caso vamos a realizar con un tamaño de 2 GB, vamos a ejecutar el siguiente comando:
1 | $ dd if=/dev/zero of=/swapfile bs=2048 count=1048576 |
Como ves, el archivo de intercambio está en la raiz del sistema y se llama swapfile, y tiene 1048576 bloques de 2048 bits, por lo que presenta un tamaño de 2GB.
Al ejecutar el comando, nos devolverá algo parecido a esto:
1 2 3 | 1048576+0 records in 1048576+0 records out 2147483648 bytes (2.1 GB, 2.0 GiB) copied, 13.6032 s, 158 MB/s |
Posteriormente, vamos a dar una serie de permisos a nuestro archivo /swapfile, haciendo así que solamente el usuario root pueda acceder al mismo, evitando problemas de seguridad con otros usuarios y/o aplicaciones. Para ello, ejecutamos lo siguiente:
1 | $ chmod 600 /swapfile |
Seguidamente, vamos a indicar al sistema que queremos usar dicho archivo como archivo de intercambio, para ello, ejecutamos:
1 2 3 4 | $ mkswap /swapfile Setting up swapspace version 1, size = 2 GiB (2147479552 bytes) no label, UUID=aa071ec1-43c3-4cb5-88d1-f1eb5629f8ff |
Y por último, vamos a activar nuestro archivo o área de intercambio mediante la ejecución del comando:
1 | $ swapon /swapfile |
¡Listo! Si ahora ejecutamos, como al principio, el comando swapon, veremos que el archivo en cuestión se encuentra activo en nuestra área de intercambio o swap del sistema Ubuntu:
1 2 3 4 | $ swapon -s Filename Type Size Used Priority /swapfile file 2097148 143536 -1 |
Para terminar, solo nos queda hacer permanente dicho archivo de intercambio para que quede activado cada vez que se reinicia el sistema. Para ello, accedemos al archivo /etc/fstab:
1 | $ vi /etc/fstab |
y al final del mismo añadimos la siguiente línea:
1 | /swapfile none swap sw 0 0 |
Nota. Recuerda que puedes salir de Vi, guardando los cambios, mediante :x.
A partir de ahora tienes activa el área o archivo de intercambio en tu sistema operativo Linux Ubuntu, por lo que si en algún momento, tu sistema se queda con poca memoria RAM, éste usará parte de tu disco duro para almacenar temporalmente los datos necesarios.
