Configurar el uso de la SWAP


El área de intercambio o memoria swap es un fichero o una partición en el disco que se emplea para guardar páginas de memoria ram cuando esta queda escasa en el sistema. En GNU/Linux suele existir una o varias particiones especiales dedicadas a tal fin. Con varias, el comportamiento suele ser como un RAID 0, para así aumentar las escrituras,  También, desde Linux, se permite modificar la prioridad de los dispositivos, lo que influye en el rendimiento (opción --priority priority).
Sin embargo, en este post los que nos atañe es modificar la forma que tiene de comportase el kernel con el paso de datos entre la memoria y la swap.
shell> fdisk -l /dev/sda
   Device  Boot Start    End     Blocks  Id  System
/dev/sda1  *        1     61     489951  83  Linux
/dev/sda2          62    304   1951897+  82  Linux swap/Solaris
/dev/sda3         305  19457   85489866  8e  Linux LVM

El uso de swap hace que "aumente" la memoria ram disponible del sistema, pero a cambio disminuye el rendimiento, ya que la I/O a disco es más lento que a ram. Lo ideal siempre es no tener que usar swap, pero eso no siempre va a suceder, por lo que el kernel de Linux permite modificar el comportamiento del área de intercambio desde el fichero /proc/sys/vm/swappiness. El valor dentro de este fichero controla la forma en la que el kernel maneja el intecambio de datos entre ram y swap. Los posibles valores para este fichero están localizados entre 0 y 100.
  • swappiness=0
    El kernel evita el intercambio de datos el mayor tiempo posible. Se maximiza el uso de la ram.
  • swappiness=100
    El kernel acelera el intercambio de datos entre ram y swap. Se emplea más swap.
El valor por defecto en sistemas GNU/Linux,
shell> cat /proc/sys/vm/swappiness 
60

Si se reduce el valor de éste, el sistema tendrá un mejor desempeño, ya que usará menos swap siempre que pueda, por el contrario aumentarlo, podrá provocar un mayor consumo de swap y bajará el rendimiento del equipo.
Cómo afecte la modificación de éste valor al sistema depende de cada equipo y para qué esté dedicado. Para modificarlo, existen dos formas:
  • Estática: añadir o modificar el valor de vm.swappiness.
  • shell> vi /etc/sysctl.conf
    ....
    vm.swappiness=25
    
  • Dinámica
  • shell> echo 25 > /proc/sys/vm/swappiness
    o
    shell> sysctl vm.swappiness=25


No hay comentarios :

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios