El intercambio es un espacio en un disco que se usa cuando la cantidad de memoria RAM 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. En la mayoría de los casos, cuando se ejecuta CentOS en una máquina virtual, la partición de intercambio no está presente, por lo que la única opción es crear un archivo de intercambio.
Este tutorial explica cómo agregar un archivo de intercambio en los sistemas CentOS 7.
Antes de comenzar #
Antes de continuar con este tutorial, verifique si su instalación de CentOS ya tiene habilitado el intercambio escribiendo:
sudo swapon --show
Si la salida está vacía, significa que su sistema no tiene habilitado el espacio de intercambio.
De lo contrario, si obtiene algo como lo siguiente, ya tiene el intercambio habilitado en su máquina.
NAME TYPE SIZE USED PRIO
/dev/dm-1 partition 1.5G 0B -1
Aunque es posible, no es común tener múltiples espacios de intercambio en una sola máquina.
Creando un archivo de intercambio #
El usuario con el que inició sesión debe tener privilegios sudo para poder activar el intercambio. En esta guía, agregaremos 1G
de intercambio, si desea agregar más intercambio, reemplace 1G
con el tamaño del espacio de intercambio que necesita.
Siga los pasos a continuación para agregar espacio de intercambio en un sistema CentOS 7.
-
Primero, cree un archivo que se usará como espacio de intercambio:
sudo fallocate -l 1G /swapfile
Si el
fallocate
la utilidad no está disponible en su sistema o recibe un mensaje de error que dicefallocate failed: Operation not supported
, use el siguiente comando para crear el archivo de intercambio:sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
-
Asegúrese de que solo el usuario raíz pueda leer y escribir el archivo de intercambio configurando los permisos correctos:
sudo chmod 600 /swapfile
-
A continuación, configure un área de intercambio de Linux en el archivo:
sudo mkswap /swapfile
-
Ejecute el siguiente comando para activar el intercambio:
sudo swapon /swapfile
Haga que el cambio sea permanente abriendo
/etc/fstab
archivo:sudo nano /etc/fstab
y pegando la siguiente línea:
/etc/fstab/swapfile swap swap defaults 0 0
-
Verifique que el intercambio esté activo usando el
swapon
o elfree
comando como se muestra a continuación:sudo swapon --show
NAME TYPE SIZE USED PRIO /swapfile file 1024M 507.4M -1
sudo free -h
total 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 en CentOS 7 es 30. Puede comprobar el valor de intercambio actual escribiendo el siguiente comando:
cat /proc/sys/vm/swappiness
30
Si bien el valor de swappiness de 30 está bien para equipos de escritorio y de desarrollo, es posible que deba establecer un valor más bajo para servidores de producción.
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, siga estos pasos:
-
Comience desactivando el espacio de intercambio escribiendo:
sudo swapoff -v /swapfile
-
A continuación, elimine la entrada del archivo de intercambio
/swapfile swap swap defaults 0 0
desde el/etc/fstab
archivo. -
Finalmente, elimine el archivo de intercambio real con
rm
:sudo rm /swapfile