Cuando Linux muestra poca memoria RAM libre, no significa necesariamente que tengamos un problema. El sistema utiliza parte de la memoria que no necesitan los programas como caché para acelerar la lectura de archivos. Si una aplicación requiere más RAM, el kernel puede recuperar esa memoria automáticamente.
Por eso, antes de intentar “liberar RAM”, debemos comprobar si realmente falta memoria o si solamente estamos viendo una caché que Linux está aprovechando. Vaciarla de forma manual puede hacer que el número de memoria libre aumente durante unos minutos, pero no soluciona la causa y puede volver el sistema más lento.

Comprobar cuánta memoria queda disponible
El primer comando que debemos ejecutar es:
free -h
La opción -h muestra los valores en unidades fáciles de leer. La columna más importante es available, que estima cuánta memoria pueden utilizar nuevas aplicaciones sin empezar a recurrir a la swap. No debemos fijarnos solamente en free, porque esa columna no incluye toda la memoria que el kernel puede recuperar.
Para observar cómo cambia mientras abrimos o cerramos programas podemos actualizar la información cada dos segundos:
watch -n 2 free -h
Podemos salir de watch pulsando Ctrl+C. La documentación de free explica cómo se calculan las columnas used, cache y available.
Localizar los programas que consumen más RAM
Si la memoria disponible es realmente baja y el equipo empieza a responder con lentitud, podemos ordenar los procesos por su memoria residente:
ps -eo pid,user,comm,%mem,rss --sort=-rss | head -n 15
La columna RSS se muestra normalmente en KiB y representa la memoria física que ocupa cada proceso en ese momento. También podemos ejecutar top y pulsar la tecla M para ordenar por memoria. Quien prefiera una interfaz más clara puede instalar y utilizar htop.
Una cifra alta no implica por sí sola que el programa esté fallando. Un navegador, una máquina virtual o un editor de vídeo necesitan bastante memoria para trabajar. Lo sospechoso es que el consumo siga creciendo sin parar aunque dejemos de utilizar la aplicación.
Qué hacer cuando falta memoria
- Cerrar pestañas, documentos o aplicaciones que ya no necesitemos.
- Guardar el trabajo y reiniciar una aplicación cuyo consumo no deja de aumentar.
- Reiniciar un servicio concreto, en lugar de reiniciar todo el ordenador, si hemos comprobado que es el responsable.
- Revisar los programas que se inician con la sesión y desactivar los que no utilizamos.
- Actualizar la aplicación si parece tener una fuga de memoria conocida.
Podemos solicitar que un proceso se cierre con kill PID, sustituyendo PID por su número, pero no debemos terminar procesos del sistema que no conozcamos. Antes de hacerlo es preferible cerrar el programa desde su propia interfaz para evitar perder información.
Comprobar el uso de la memoria swap
La memoria swap utiliza una partición o un archivo del disco cuando es necesario apartar de la RAM páginas que se usan poco. Podemos comprobarla con:
swapon --show
free -h
Que haya datos en la swap no demuestra que el sistema esté sin memoria en ese instante. Linux puede mantener allí páginas antiguas aunque después vuelva a disponer de RAM. El problema aparece cuando existe actividad continua de lectura y escritura en la swap y el equipo se queda bloqueado esperando al disco.
No es recomendable ejecutar habitualmente swapoff -a para vaciarla. Si no existe suficiente RAM para recuperar todo su contenido, el sistema puede quedarse sin memoria. En equipos con poca RAM puede ser más útil configurar zram o ampliar la memoria, dependiendo de la distribución y del uso del ordenador.
Comprobar si Linux ha cerrado algún proceso
Cuando el sistema agota la memoria, el mecanismo OOM puede finalizar un proceso para poder continuar funcionando. Podemos buscar esos mensajes en el arranque actual con:
journalctl -k -b | grep -Ei 'out of memory|killed process|oom'
Si aparecen cierres repetidos del mismo programa, ya tenemos una pista concreta. En ese caso conviene revisar su configuración, actualizarlo o limitar el trabajo que realiza, en lugar de borrar la caché del sistema.
Por qué no debemos vaciar la caché de Linux
Es habitual encontrar el siguiente comando como método para liberar RAM:
sudo sync && sudo sysctl -w vm.drop_caches=3
El comando sincroniza los datos pendientes y descarta la caché de páginas, dentries e inodos que se pueda recuperar. No borra la memoria utilizada por las aplicaciones ni corrige una fuga. Además, los archivos que volvamos a utilizar tendrán que leerse otra vez desde el disco.


La documentación del kernel indica expresamente que drop_caches no sirve para controlar el crecimiento de las cachés y que puede provocar problemas de rendimiento. Su uso está pensado para pruebas y depuración, no como tarea periódica de mantenimiento.
Conclusión
Para liberar memoria RAM en Linux debemos localizar primero qué la está consumiendo. Si la columna available mantiene un valor razonable y el equipo funciona con normalidad, no hace falta hacer nada: Linux está utilizando la memoria libre para acelerar el sistema.
Cuando la memoria disponible cae, la swap trabaja continuamente o aparecen cierres por OOM, la solución consiste en cerrar o corregir el proceso responsable, reducir los programas en segundo plano o ampliar los recursos. Vaciar la caché solamente cambia las cifras durante un rato y puede conseguir justo lo contrario de lo que buscamos.

En Positivo bgh 2 Se puede Tambien
Recibe un gran saludo y mi más sincero agradecimiento. Ejecuté las órdenes en lubuntu 16.04.1 y por fin conseguí lo que buscaba desde hace tiempo, liberar memoria para otras aplicaciones.
Gracias.
Nos alegra mucho saber eso!
No ayuda mucho.
Hola, en qué no le ha ayudado?
Hola y muchos thank yous
Por mala redaccion repito el mensaje, disculpas:
La RAM en mi PC con Ubuntu 16.04 solo detecta la mitad de dos Gb.
En cache hay 160 y la memoria libre esta en mas de 700 casi una GB. como hacer para que el sistema operativo utilise esa memoria libre? La PC se ralentiza mucho con ubuntu Gracias por cualquier ayuda
Hola, la memoria libre la usa el sistema operativo según se vayan utilizando procesos, no se puede asignar manualmente. Quizá sea un problema de hardware, otros sistemas operativos reconocen los dos GB de RAM?
Un saludo.
Hola has intentado validar en cuanto está tu swap?
Mira acá: https://askubuntu.com/questions/103915/how-do-i-configure-swappiness
Hola, yo utilizo kali linux es el mismo comando ? poeque a mi no me funciona, bueno el primero para ver lo que tengo libre y usado si pero el de liberar memoria no me funciona espero que me ayudes.
Hola, gracias, es lo que andaba buscando. Saludos.
Gracias, ayuda mucho
Rodrigo prueba con Zram, a Mi me sirvió
Sos un crack!
Genial. Gracias
Excelente:
Me salvaste de apuros, ya que todos estaban quejando de lo lento que estaba en todos los workstations,
vi con htop en el servidor linux que tenia al limite la ram.
pude liberar suficiente espacio.
ahora anda de 10
Gracias
Saludos