Cambiar la prioridad de la swap en Linux (partición / fichero de intercambio)

Vamos a ver cómo cambiar la prioridad de la memoria swap en Linux, ya que podemos tener partición de swap o fichero de intercambio, y cada uno de ellos con una diferente prioridad.

 
En otro artículo ya hablamos recientemente acerca de los beneficios que tiene el uso de memoria Swap en algunos equipos con poca memoria RAM; (preferiblemente daremos mayor prioridad a la partición antes que al fichero de intercambio).
 
cambiar prioridad swap linux
 
En este artículo:
 

 
 
En este caso vamos a ver cómo configurar diferentes prioridades a una partición swap y a un fichero de intercambio de swap.

La instalación de Ubuntu 18 genera por defecto una partición de swap de 1 Gb:
discos de gnome ubuntu 18

 

En este caso nos interesa que la partición de swap tenga mayor prioridad que el fichero de intercambio, ya que la partición swap ofrece un rendimiento mayor que el fichero .

 

Primero asumimos que ya hemos creado y configurado el fichero de intercambio, en cuyo caso ahora lo que vamos a hacer es editar el fichero /etc/fstab, en el cual configuraremos la prioridad tanto para la partición como para el fichero.

 

En el fichero fstab configuraremos la prioridad de la swap ; vemos que tenemos una partición de swap y un fichero de swap, y cada uno de ellos se pondrá automáticamente con una prioridad que el sistema elegirá automáticamente.

 

¿Por qué la prioridad de las diferentes áreas de swap se establece automáticamente?

 
Si aún no hemos configurado ninguna prioridad, podremos comprobar cómo el sistema asigna automáticamente una prioridad tanto a la partición como al fichero.

 

Cada área de intercambio tiene una prioridad, ya sea alta o baja. La prioridad predeterminada es baja. Dentro de las áreas de baja prioridad, las áreas más nuevas tienen una prioridad incluso menor que las áreas más antiguas.

O sea que si teníamos una partición de swap configurada (por la instalación de Ubuntu, que lo configura por defecto a no ser que nosotros lo modifiquemos), y después hemos creado de forma adicional un fichero como espacio de intercambio extra, este fichero de intercambio se utilizará antes que la partición, y precisamente es lo contrario de lo que queremos.

Entonces si se nos ocurre establecer prioridades negativas en el fichero fstab, comprobaremos que no funciona. Es porque las prioridades negativas las establece el kernel automáticamente. Si queremos establecer nosotros una prioridad, tendrá que ser un número positivo. Si nosotros mismos no agregamos una prioridad, será el núcleo el que la generará por nosotros.

 

Veamos el ejemplo real , en este caso no hemos configurado aún las prioridades, así que el kernel asigna una mayor prioridad al fichero de swap, que es el “más nuevo” (la partición de swap ya existía), y vemos que por tanto, se utiliza primero el fichero de intercambio para swappear:

usuario1@Ubuntu18:~$ sudo swapon --show
NAME TYPE SIZE USED PRIO
/swapfile file 500M 85,3M -2
/dev/dm-1 partition 976M 0B -3

 

 

Y esto lo hace el kernel porque por defecto la configuración de la partición swap en el fichero /etc/fstab no establece prioridades (tendremos que configurar nosotros la prioridad). Esta es la swap que tenemos, una partición y un fichero de intercambio:
 

La partición de swap:

/dev/mapper/ubuntu--vg-swap_1 none swap sw 0 0

 

El fichero de intercambio:

/swapfile swap swap 0 0

 

Como preferimos la partición de swap por su rendimiento superior al del fichero de intercambio, a continuación vamos a modificar las prioridades en el fichero fstab.
 

 

Establecer de forma permanente la prioridad para partición swap o fichero de intercambio en Ubuntu

 
Tenemos que fijarnos bien porque la forma de establecer la prioridad para partición o para fichero es un poco diferente.

Para establecer la prioridad de la partición de swap (En la columna de “options“, detrás de sw se pone una coma y después la prioridad):

/dev/mapper/ubuntu--vg-swap_1 none swap sw,pri=100 0 0

 

Para establecer la prioridad del fichero de intercambio (y con prioridad inferior a la de la partición, lo colocamos en la columna de “options“, pero vemos que no hay otras opciones, al contrario que ocurría con la partición):

/swapfile swap swap pri=4 0 0

 

Finalmente  el fichero fstab quedará así:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/ubuntu--vg-root / ext4 errors=remount-ro 0 1
/dev/mapper/ubuntu--vg-swap_1 none swap sw,pri=100 0 0
/swapfile swap swap pri=4 0 0

 

 

cambiar la prioridad de la swap, en partición o fichero de intercambio

 

 

Reiniciamos el sistema, y comprobamos que realmente está funcionando la configuración que hemos establecido, haciendo que el sistema utilice primero la partición para swappear:

usuario1@Ubuntu18:~$ sudo swapon --show
NAME TYPE SIZE USED PRIO
/swapfile file 500M 0B 4
/dev/dm-1 partition 976M 524K 100

 

 

Establecer la prioridad de forma puntual (no permanente, no se hace efectivo en cada reinicio)

 

Si queremos cambiar la prioridad de la swap de  forma rápida y puntual (no se mantendrá cuando se reinicie la máquina), lo podemos hacer de esta forma:

swapon -p 30 /swapfile

 
Primero desactivamos el fichero de swap:

usuario1@Ubuntu18:~$ sudo swapoff /swapfile

 

Luego lo activamos de nuevo pero asignándole la prioridad que queremos:

usuario1@Ubuntu18:~$ sudo swapon -p 30 /swapfile
swapon: /swapfile: permisos 0644 no seguros; se sugiere 0600.

 

Y comprobamos entonces que se ha establecido la prioridad que hemos configurado:

usuario1@Ubuntu18:~$ sudo swapon --show
NAME TYPE SIZE USED PRIO
/swapfile file 500M 0B 30
/dev/dm-1 partition 976M 8,1M -2