CH-J Server Managergestión de servidores a través de SSH
Menú
Todos los tutoriales y artículos →

Cómo interpretar la RAM, la caché y swap en un servidor Linux

Qué significan las columnas de free, por qué un uso elevado de memoria suele ser normal y qué señales indican realmente falta de memoria.

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/meminfo

Qué 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 -15

El 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 5

Averigua 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 -15

Reconoce 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.

Documentación detallada

man: free →

man: proc_meminfo →

Seguridad y desbloqueo biométrico →