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 Ubuntu en una máquina virtual, no hay una partición de intercambio y la única opción es crear un archivo de intercambio.

Este tutorial explica cómo agregar un archivo de intercambio en Ubuntu 20.04.

Antes de que empieces

El intercambio no debe verse como un reemplazo de la memoria física. Dado que el espacio de intercambio es una sección del disco duro, tiene un tiempo de acceso más lento que la memoria física. Si su sistema constantemente se queda sin memoria, debe agregar más RAM.

En general, el tamaño del archivo de intercambio depende de la cantidad de RAM que tenga su sistema:

  • Sistemas con menos de 2 GB de RAM : 2 veces la cantidad de RAM.
  • Sistemas con 2 a 8 GB de RAM : el mismo tamaño que la cantidad de RAM.
  • Sistemas con más de 8 GB de RAM - al menos 4 GB de Swap.

Solo el root o el usuario con privilegios sudo pueden activar el archivo de intercambio.

Creación de un archivo de intercambio

En este ejemplo, crearemos 2 GBun archivo de intercambio. Si desea agregar más intercambio, reemplácelo 2Gcon el tamaño del espacio de intercambio que necesita.

Complete los pasos a continuación para agregar espacio de intercambio en Ubuntu 20.04:

  1. Primero, cree un archivo que se usará como intercambio:

    sudo fallocate -l 2G /swapfile

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

    sudo dd if=/dev/zero of=/swapfile bs=1024 count=2097152
  2. Establezca los permisos del archivo para 600evitar que los usuarios regulares escriban y lean el archivo:

    sudo chmod 600 /swapfile
  3. Cree un área de intercambio de Linux en el archivo:

    sudo mkswap /swapfile
    Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
    no label, UUID=fde7d2c8-06ea-400a-9027-fd731d8ab4c8
    
  4. Active el archivo de intercambio ejecutando el siguiente comando:

    sudo swapon /swapfile

    Para hacer que el cambio sea permanente, abra el /etc/fstabarchivo:

    sudo nano /etc/fstab

    y pega la siguiente línea:

    /etc/fstab
    /swapfile swap swap defaults 0 0
  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        2G    0B   -1
    sudo free -h
                  total        used        free      shared  buff/cache   available
    Mem:          981Mi        97Mi        68Mi       0.0Ki       814Mi       735Mi
    Swap:         2.0Gi        10Mi       1.9Gi

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. 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.

En Ubuntu, el valor de intercambio predeterminado se establece en 60Puede verificar el valor actual escribiendo el siguiente comando:

cat /proc/sys/vm/swappiness
60

Si bien el valor de intercambio de 60está bien para la mayoría de los sistemas Linux, para los servidores de producción, es posible que deba establecer un valor más bajo.

Por ejemplo, para establecer el valor de intercambio en 10, ejecute:

sudo sysctl vm.swappiness=10

Para que este parámetro sea persistente entre 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. Primero, desactive el espacio de intercambio:

    sudo swapoff -v /swapfile
  2. A continuación, elimine la entrada /swapfile swap swap defaults 0 0del archivo de intercambio del /etc/fstabarchivo.

  3. Finalmente, elimine el archivo de intercambio real usando el rm comando:

    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 Ubuntu 20.04.

Si encuentra un problema o tiene comentarios, deje un comentario a continuación.