Cómo analizar consumo de memoria en Linux de forma profesional (troubleshooting)

Cómo analizar consumo de memoria en Linux (troubleshooting real)

Cuando un servidor empieza a swapear, responde lento o ciertos servicios se reinician solos, uno de los primeros sospechosos es la memoria. Pero entender memoria en Linux no es tan simple como “used vs free”. En este artículo te muestro un flujo práctico para diagnosticar estos problemas sin caer en interpretaciones erróneas.


1. Ver la memoria real con free -h

free -h

Puntos clave a observar:

  • used no siempre significa problema.
  • available es el valor que realmente importa.
  • Si available < 10%, puede haber riesgo de swapping.
  • Si hay swap used > 0, revisá qué proceso lo está provocando.

2. Identificar qué procesos consumen más memoria

ps aux --sort=-%mem | head

Interpretación:

  • %MEM indica qué porcentaje consume un proceso sobre el total del sistema.
  • Si un proceso aparece con consumo estable y alto, revisá logs.
  • Servicios como Java, PostgreSQL o Python pueden reservar memoria agresivamente.

3. Ver el uso de memoria detallado por proceso con pmap

pmap -x PID | sort -k3 -n | tail

Sirve para detectar:

  • Fugas de memoria (crecimiento constante).
  • Segmentos anómalos o demasiado grandes.
  • Bibliotecas o extensiones consumiendo RAM.

4. Revisar el comportamiento del sistema con top o htop

En top prestá atención a:

  • KiB Mem → para verificar si hay crecimiento constante.
  • RES (memoria residente): la que realmente usa el proceso.
  • SHR: cuánto comparte con otras librerías.

Si un proceso tiene RES muy alto y subiendo → posible fuga.


5. Ver si el problema es realmente memoria o cache de disco

Linux usa la RAM libre como caché.
Por eso “memoria usada alta” no significa error.

Para ver cache y buffers:

cat /proc/meminfo | egrep "Buffers|Cached|MemAvailable"

Si Cached es muy alto pero Available también → está todo bien.

Si Available está bajo, aunque Cached esté alto → el sistema está bajo presión.


6. Revisar swap y quién lo está usando

swapon -s
grep VmSwap /proc/*/status 2>/dev/null | sort -k2 -n | tail

Si un proceso usa mucha swap:

  • está consumiendo más de lo que debería
  • o hay fuga
  • o el sistema no tiene memoria suficiente

7. Ver logs del sistema y del servicio

journalctl -p warning -u servicio --since "10 min ago"

Buscá:

  • OOM Killer (Out of Memory)
  • reinicios automáticos
  • errores de asignación

Si aparece algo como:

kernel: Out of memory: Kill process 1234 (java) score 920

→ hubo un problema serio de memoria.


Conclusión

Diagnosticar consumo de memoria en Linux no es revisar “used” o “free”. Lo importante es analizar available, observar procesos que crecen de forma anormal, revisar swap y logs del sistema. Con un flujo simple como este, podés detectar rápidamente si se trata de un uso legítimo, una fuga de memoria o un proceso mal configurado.

Con práctica, este diagnóstico se vuelve automático, rápido y confiable.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *