Ir al contenido principal

Utilizando Swapon y Swapoff para liberar memoria SWAP



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. 

Entradas populares de este blog

Fallo al obtener la lista de compartición del servidor

 - Ubuntu Karmic Koala El problema. El detalle es que a veces tengo que revisar archivos que están en otras computadoras que utilizan windows. Al momento de darle en el menú Lugares - Red - Red de Windows y al elegir el grupo de trabajo en el que están mis equipos me aparece el siguiente error. No se puede montar el lugar. Fallo al obtener la lista de compartición del servidor. La solución . La encontré en este articulo de los Foros de Ubuntu, lo voy a copiar tal cual, espero que no le moleste al autor y solo a manera de respaldo. # — Aquí inicia el articulo de los foros de Ubuntu – 1- En principio es necesario que estén instalados: samba samba-common smbclient winbind   2- Luego editar el archivo /etc/samba/smb.conf sudo gedit /etc/samba/smb.conf   A los cambios necesarios para adaptar el sistema, según los tutoriales de samba es necesario tener presente que: a- Donde dice workgroup = WORKGROUP, reemplazar WORKGROUP por el nombre de grupo de ...

Descargar Packet Tracer 5.2 [Windows y Linux]

Packet Tracer 5.2 [Windows y Linux] Packet Tracer es la herramienta de aprendizaje y simulación de redes interactiva para los instructores y alumnos de Cisco CCNA. Esta herramienta les permite a los usuarios crear topologías de red, configurar dispositivos, insertar paquetes y simular una red con múltiples representaciones visuales. Packet Tracer se enfoca en apoyar mejor los protocolos de redes que se enseñan en el currículum de CCNA. Este producto tiene el propósito de ser usado como un producto educativo que brinda exposición a la interfaz comando – línea de los dispositivos de Cisco para practicar y aprender por descubrimiento. Packet Tracer 5.2 es la última versión del simulador de redes de Cisco Systems, herramienta fundamental si el alumno está cursando el CCNA o se dedica al networking. En este programa se crea la topología física de la red simplemente arrastrando los dispositivos a la pantalla. Luego clickando en ellos se puede ingresar ...

Mensaje de bienvenida en la Consola

Es una pequeña utilidad para mostrar texto ASCII en la consola. Se llama Figlet y la podemos instalar en Ubuntu con “sudo apt-get install figlet”. Podemos hacer que aparezca un mensaje de bienvenida en la consola si añadimos estas lineas al archivo “$HOME/.bashrc”: #Mensaje figlet “Texto Que quieras $USER”