Aveces ocurre que si tenemos abierta una aplicación ejecutando un
proceso muy pesado que requiera de mucha memoria, acabe inundando la
memoria RAM y parte de la memoria Swap. Después de cerrar la aplicación
parte de la memoria RAM se queda libre como es obvio, pero muchos
procesos que antes estaban en la memoria RAM han pasado a la Swap para
dejar libre el proceso de la aplicación que acabamos de cerrar. Eso
provoca que el sistema responda con mas latencias y tarde mas tiempo en
ejecutar tareas nuevas que no estén en RAM. En esos casos mucha gente lo
que hace es reiniciar, pero de lejos es una opción molesta y
completamente innecesaria. Hace tiempo publicamos un tutorial en Leanuxeros para hacer que el sistema utilice la Swap como ultimo recurso.
Con el comando free podemos ver la memoria
disponible en la terminal. Nos dice la memoria libre, la memoria ocupada
por cache y la memoria ocupada por la Swap. Por ejemplo así es como
queda mi ordenador portátil después de hacer un render pesado con
Blender, como podéis ver, hay mucha memoria Swap ocupada y sin embargo
hay memoria RAM disponible que no se esta utilizando.
Ahora podemos pasar el contenido de la Swap a la memoria RAM, pero para ello primero nos tenemos que asegurar
que la cantidad de memoria Swap utilizada ocupe menos espacio de lo que
nos queda libre en la memoria RAM, obviamente seria una barbaridad
forzar un traspaso de memoria Swap a la RAM si no nos queda memoria RAM
libre, por que entonces ocurriría un desborde de memoria haciendo que
muchos procesos vitales se colgaran y el kernel entraría en un bucle
irrecuperable o mas conocido como Kernel Panic.
Por ejemplo en mi caso tengo 40,8 MB de Swap utilizada, y me queda 139,7 MB de RAM libre como podéis ver en la imagen.
Ahora tenemos que desactivar la partición Swap con la instrucción swap <función>, para desactivarla seria con el siguiente comando:
sudo swapoff -a
Con esto todas las particiones de intercambio que pudiera tener
nuestro sistema se desactivaran temporalmente haciendo que todo su
contenido se copie a la memoria RAM (la velocidad dependerá de lo rápida
que sea la memoria RAM y el bus del chipset). Ahora volvemos a
comprobar el estado con el comando free, y podemos observar que la Swap tiene 0 Bytes de capacidad, lo que significa que esta desactivado.
Ahora para volver a activarlo (no se recomienda en absoluto mantenerla desactivada), la activamos con el siguiente comando:
sudo swapon -a
Ahora al volver a ejecutar el comando free, vemos
que efectivamente no se esta utilizando por que se ha copiado a la RAM,
pero la partición vuelve a tener el tamaño original, es decir, que esta
activado.
Con
esta simple función podemos ganar mas respuesta de vez en cuando si el
sistema es sometido a grandes cargas de memoria. En el caso de que
tengamos mas de una partición Swap, como por ejemplo ocurría con el caso
de la PlayStation 3 que podíamos usar la memoria gráfica como Swap mas
la que tengamos en la partición del disco duro, entonces podemos ver la
prioridad de las particiones con la función -s, el comando completo seria este:
sudo swapon -s
Y nos saldrá algo así:
En mi caso solo tengo una partición que es lo recomendado para la gran mayoría de sistemas. Lo que indica diciendo -1 significa que tiene menos prioridad que la memoria RAM, si tuviésemos otra partición nos lo diría con -2, -3, etc—
Man Page (8)
NOMBRE
swapon, swapoff - (des)habilita dispositivos o ficheros para el paginado y el trasiego
DESCRIPCIÓN
Swapon se emplea para especificar dispositivos sobre los cuales van
a tener lugar las actividades de paginado y trasiego. Las llamadas a
swapon se hacen normalmente en el fichero de inicio del sistema en modo
multi-usuario, normalmente /etc/rc, haciendo ahí que todos los
dispositivos de trasiego estén disponibles, de modo que las actividades
de paginado y trasiego se intercalen entre varios dispositivos o
ficheros.
Normalmente, se emplea la primera forma:
-h
Proporciona ayuda.
-V
Muestra la versión.
-s
Muestra un sumario del uso del trasiego por dispositivo.
-a
Se hacen disponibles para el trasiego todos los dispositivos marcados con ``sw'', de tipo `swap', en el fichero /etc/fstab.
-p prioridad
Especifica la prioridad para swapon. Esta opción sólo está
disponible si swapon se ha compilado y se está usando bajo un núcleo
1.3.2 ó superior. prioridad es un valor entre 0 y 32767. Vea swapon(2)
para una descripción completa de las prioridades de trasiego. Añada
pri=valor al campo de opciones de /etc/fstab para el empleo con swapon
-a.
Swapoff deshabilita el trasiego en los dispositivos o ficheros
especificados, o en todas las entradas de tipo `swap' de /etc/fstab
cuando se da la opción -a.