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. Por lo general, cuando se ejecuta CentOS en una máquina virtual, no hay una partición de intercambio, por lo que la única opción es crear un archivo de intercambio.

Este artículo cubre los pasos para agregar un archivo de intercambio en los sistemas CentOS 8.

Creación y activación de un archivo de intercambio

Realice los siguientes pasos como raíz o usuario con privilegios sudo para agregar espacio de intercambio en un sistema CentOS 8.

  1. Comience creando un archivo que sirva como espacio de intercambio:

    sudo fallocate -l 1G /swapfile

    En este ejemplo, estamos creando un archivo de intercambio con un tamaño de 1G. Si necesita más intercambio, reemplácelo 1Gcon el tamaño deseado.

    Si la fallocateutilidad no está disponible en su sistema o recibe un mensaje de error que dice fallocate failed: Operation not supported, use el ddcomando para crear el archivo de intercambio:

    sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
  2. Establezca los permisos del archivo para que solo el usuario raíz pueda leer y escribir el archivo de intercambio:

    sudo chmod 600 /swapfile
  3. A continuación, configure un área de intercambio de Linux en el archivo:

    sudo mkswap /swapfile
    Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
    no label, UUID=0abdb8ba-57d6-4435-8fd8-5db9fc705045
  4. Active el intercambio ejecutando el siguiente comando:

    sudo swapon /swapfile
  5. Verifique que el intercambio esté activo usando swaponel free comando o, 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
  6. Haga que el cambio sea permanente agregando una entrada de intercambio en el /etc/fstabarchivo:

    sudo nano /etc/fstab

    Pegue la siguiente línea:

    /etc/fstab
    /swapfile swap swap defaults 0 0

Ajuste del valor de intercambio

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 8 es 30. Puede verificar 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, para servidores de producción, es posible que deba 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 al /etc/sysctl.confarchivo:

/etc/sysctl.conf
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.

Eliminar un archivo de intercambio

Para desactivar y eliminar el archivo de intercambio, siga estos pasos:

  1. Desactive el espacio de intercambio escribiendo:

    sudo swapoff -v /swapfile
  2. Quite la entrada /swapfile swap swap defaults 0 0de intercambio del /etc/fstabarchivo.

  3. Elimine el archivo de intercambio real con rm :

    sudo rm /swapfile

Conclusión

Le mostramos cómo crear un archivo de intercambio y activar y configurar el espacio de intercambio en su sistema CentOS 8.