El intercambio es un espacio en un disco que se usa cuando la cantidad de memoria 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. Por lo general, cuando se ejecuta una máquina virtual Debian, la partición de intercambio no está presente, por lo que la única opción es crear un archivo de intercambio.
Este tutorial lo guiará a través de los pasos para agregar un archivo de intercambio en Debian 10 Buster.
Antes de comenzar #
Aunque es posible, no es común tener múltiples espacios de intercambio en una sola máquina. Para verificar si su instalación de Debian ya tiene habilitado el intercambio, ejecute el siguiente comando:
sudo swapon --show Si la salida está vacía, significa que el sistema no tiene espacio de intercambio.
De lo contrario, si obtiene algo como lo siguiente, ya tiene el intercambio habilitado en su sistema Debian.
NAME TYPE SIZE USED PRIO
/dev/sda2 partition 4G 0B -1
Para activar el intercambio, el usuario que ejecuta los comandos debe tener privilegios sudo.
Creando un archivo de intercambio #
En este ejemplo, crearemos y activaremos 1G de permuta. Para crear un intercambio más grande, reemplace 1G con el tamaño del espacio de intercambio deseado.
Los pasos a continuación muestran cómo agregar espacio de intercambio en Debian 10.
-
Primero cree un archivo que se usará para el intercambio:
sudo fallocate -l 1G /swapfileSi
fallocateno está instalado o aparece un mensaje de error que indica quefallocate failed: Operation not supportedpuede usar el siguiente comando para crear el archivo de intercambio:sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576 -
Solo el usuario raíz debe poder leer y escribir en el archivo de intercambio. Ejecute el siguiente comando para establecer los permisos correctos:
sudo chmod 600 /swapfile -
Usa el
mkswapherramienta para configurar un área de intercambio de Linux en el archivo:sudo mkswap /swapfile -
Activar el archivo de intercambio:
sudo swapon /swapfilePara hacer que el cambio sea permanente, abra
/etc/fstabarchivo:sudo nano /etc/fstaby pegue la siguiente línea:
/etc/fstab/swapfile swap swap defaults 0 0 -
Verifique si el intercambio está activo usando el
swaponofreecomando como se muestra a continuación:sudo swapon --showNAME TYPE SIZE USED PRIO /swapfile file 1024M 507.4M -1sudo free -htotal used free shared buff/cache available Mem: 488M 158M 83M 2.3M 246M 217M Swap: 1.0G 506M 517M
Ajustando el Valor de Swappiness #
Swappiness es una propiedad del kernel de Linux que define la frecuencia con la que el sistema utilizará el espacio de intercambio. La capacidad de intercambio puede tener un valor entre 0 y 100. Un valor bajo hará que el kernel intente evitar el intercambio siempre que sea posible, mientras que un valor más alto hará que el kernel use el espacio de intercambio de manera más agresiva.
El valor de intercambio predeterminado es 60. Puede verificar el valor de intercambio actual usando el cat 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, para los servidores de producción debe establecer un valor más bajo.
Por ejemplo, para establecer el valor de intercambio en 10, escriba:
sudo sysctl vm.swappiness=10
Para hacer que este parámetro sea persistente en los reinicios, agregue la siguiente línea a /etc/sysctl.conf archivo:
vm.swappiness=10
El valor óptimo de swappiness depende de la carga de trabajo de su sistema y de cómo se utiliza la memoria. Debe ajustar este parámetro en pequeños incrementos para encontrar un valor óptimo.
Eliminación de un archivo de intercambio n.º
Para desactivar y eliminar el archivo de intercambio, realice los siguientes pasos:
-
Desactive el espacio de intercambio ejecutando:
sudo swapoff -v /swapfile -
Abra el
/etc/fstabarchivo con su editor de texto y elimine la entrada del archivo de intercambio/swapfile swap swap defaults 0 0. -
Finalmente, elimine el archivo de intercambio real con el
rmcomando:sudo rm /swapfile