/ Nov 10, 2026
Trending
El comando free -h y, dentro de él, la columna available son la referencia para comprobar cuánta memoria RAM queda realmente disponible en un sistema Linux. La cifra que marca la columna free, en cambio, no sirve para valorar si el equipo anda apurado de memoria: suele aparecer baja porque el núcleo reserva la RAM sobrante como caché de disco, no porque falte memoria de verdad.
El malentendido es antiguo y nace de cómo gestiona la memoria el núcleo de Linux. Tal y como sabemos ahora sobre el uso de memoria RAM en Linux, el sistema aprovecha la RAM sobrante para guardar en caché archivos de disco, lo que acelera las siguientes lecturas y hace que la columna free baje con el tiempo de uso. Esa caché no es un derroche: se libera sola en cuanto un programa necesita el espacio.
La frase «Linux se come la RAM» nace de ver la columna free casi vacía en free -h o en cualquier monitor gráfico. En realidad esa memoria libre no estaba haciendo nada: el núcleo prefiere llenarla con caché de páginas antes que dejarla ociosa, porque una RAM vacía no acelera absolutamente nada.
Cada vez que se abre un archivo, Linux guarda una copia en memoria. Si se vuelve a acceder a él poco después, se carga desde la RAM en lugar del disco y el proceso resulta mucho más rápido. Esa caché no tiene dueño fijo: en el momento en que una aplicación pide memoria, el núcleo la cede sin que el usuario tenga que intervenir. Por eso la cifra que conviene vigilar no es free, sino available: la suma de lo que está realmente libre más la parte de la caché que se puede recuperar al instante.
Al ejecutar free -h en la terminal, el sistema devuelve varias columnas con el estado de la memoria y la swap. La opción -h muestra las cifras en unidades legibles, calculadas en gibibytes (potencias de 1024), así que un equipo con 64 GB de RAM física puede aparecer como 61Gi.
En un portátil con CachyOS, procps-ng 4.0.7 y systemd 262, free -h devolvió estos valores: 61Gi de memoria total, 19Gi usados, 22Gi libres, 1,7Gi compartidos, 22Gi en buff/cache y 42Gi disponibles; la swap marcó 93Gi totales, con 4,0Gi usados y 89Gi libres. La diferencia entre los 22Gi «libres» y los 42Gi «disponibles» es, casi en su totalidad, caché recuperable: hay memoria de sobra para abrir más programas sin tocar la swap, aunque la columna free parezca escasa.
La columna available no es la suma directa de free y buff/cache: una parte de la caché, como la memoria compartida o los archivos guardados en tmpfs, no se puede liberar sin más, así que el cálculo del núcleo es algo más conservador. Además, en las versiones recientes de free, used se obtiene restando available de total, de modo que las columnas no siempre cuadran a la perfección si se suman a mano.
El comando admite algunas variantes útiles según lo que se quiera consultar:
free -h --si: cambia las unidades a potencias de 1000 en lugar de 1024.free -h -w: separa buffers y caché en dos columnas distintas.free -h -t: añade una fila con el total de RAM y swap sumadas.free -h -s 2 -c 5: repite la salida cada 2 segundos, cinco veces.free -h -L: condensa toda la información en una sola línea.Si free indica que la memoria se ha estrechado, el siguiente paso es averiguar qué proceso la está acaparando. Para eso sirven los monitores interactivos: top viene preinstalado en casi cualquier distribución, mientras que htop y btop ofrecen una interfaz más visual, con colores y gráficas.
En top basta pulsar la tecla M (mayúscula) para ordenar los procesos por consumo de memoria; resulta más útil fijarse en la columna RES, que refleja la memoria física real usada, y no en VIRT, que incluye memoria virtual reservada y suele dar cifras engañosas. htop añade una vista en árbol con la tecla F5, práctica para identificar navegadores que abren decenas de subprocesos, y btop suma gráficas históricas que ayudan a detectar picos de consumo repentinos. Para una lista rápida sin abrir ningún monitor, ps aux --sort=-%mem | head devuelve los procesos que más memoria ocupan en ese instante.
Ir a la fuente
Author: Rubén Velasco