Consulta available, no free
Linux utiliza la memoria que de otro modo quedaría sin usar como caché de disco, así que tener poca memoria libre es normal en un servidor en buen estado. La columna available es la estimación del núcleo de cuánta memoria pueden obtener las tareas nuevas sin recurrir a swap. Esa es la cifra que debes vigilar. El cálculo exacto de used depende de la versión de la herramienta, por lo que no debes compararlo entre sistemas distintos.
free -h
grep -E 'MemAvailable|Shmem:|SReclaimable' /proc/meminfoQué puede y qué no puede liberar la caché
La caché de páginas normalmente se puede liberar cuando las aplicaciones necesitan memoria. La memoria compartida y tmpfs (Shmem) también aparecen en la caché, pero no se pueden descartar sin más, porque contienen datos sin copia en disco. Por eso, una caché grande con poca memoria disponible suele indicar un tmpfs o un segmento de memoria compartida de gran tamaño.
df -h -t tmpfs
sudo slabtop -o | head -15El uso de swap no es automáticamente un problema
Un servidor puede mantener páginas poco utilizadas en swap durante semanas sin consecuencias negativas. Lo perjudicial es el movimiento continuo. Vigila las columnas si y so de vmstat: unos valores que se mantienen por encima de cero indican que el sistema mueve páginas activamente entre RAM y swap, lo que señala una falta real de memoria.
swapon --show
vmstat 1 5Averigua qué consume la memoria
Ordena los procesos por memoria residente. RSS cuenta las páginas compartidas entre procesos en cada uno de ellos, así que los valores de varios procesos no se pueden sumar sin más. Las herramientas con PSS, como smem, ofrecen una suma más representativa si las tienes instaladas.
ps -eo pid,user,rss,comm --sort=-rss | head -15Reconoce una falta real de memoria
Las señales son poca memoria disponible, movimiento constante entre RAM y swap y procesos terminados por el mecanismo out-of-memory killer. Revisa el registro del núcleo. No ejecutes drop_caches para mejorar el aspecto de las cifras: solo obliga al servidor a leer de nuevo del disco y no soluciona nada.
sudo journalctl -k --no-pager | grep -iE 'out of memory|oom-kill'Memoria en CH-J Server Manager
System Monitor lee estos valores por SSH. En Linux define used como MemTotal − MemFree − Buffers − Cached − SReclaimable y available como la estimación del núcleo. La memoria compartida forma parte de Cached y no se puede liberar, y las categorías de la barra no se solapan. Como la fórmula difiere de la de algunas versiones de free, las cifras pueden no coincidir exactamente. También muestra swap con su historial de uso. ZFS ARC no se trata por separado, por lo que en los hosts con ZFS cuenta como memoria utilizada.