Rain WikiWindows · Linux · Android

Asesino de OOM

ConceptoTodas las distribuciones Linux

El asesino OOM (out-of-memory) es la parte del núcleo de Linux que finaliza un proceso cuando el sistema se queda sin memoria y no puede liberar ninguna. Elige el proceso según su puntuación OOM, por lo general el que utiliza más memoria. El registro del núcleo registra cada OOM kill.

1Cómo se elige a la víctima

Cada proceso tiene una puntuación en /proc/<pid>/oom_score que aumenta con su uso de memoria. /proc/<pid>/oom_score_adj, de -1000 a 1000, la ajusta; -1000 significa que el proceso nunca es elegido.

2Encontrar muertes por OOM

El núcleo escribe 'Out of memory: Killed process' en su registro. journalctl -k | grep -i oom o dmesg | grep -i oom muestran estos mensajes, con el nombre del proceso y su uso de memoria.

3Prevención

Añada memoria o espacio de intercambio (swap), limite los servicios que consumen mucha memoria o establezca límites por servicio con opciones de systemd como MemoryMax=. Algunas distribuciones también ejecutan systemd-oomd, que actúa antes basándose en la presión de la memoria.

Cómo investigar una muerte por OOM

  1. Busque en el registro del núcleo: journalctl -k | grep -i -A5 'out of memory'
  2. Anote el proceso finalizado y su tamaño de memoria.
  3. Compruebe la memoria actual y el espacio de intercambio: free -h
  4. Encuentre los procesos más grandes: ps aux --sort=-rss | head
  5. Añada espacio de intercambio o limite el servicio, y luego observe si vuelve a suceder.

Precauciones

  • Establecer oom_score_adj en -1000 para muchos procesos puede dejar al núcleo sin una opción segura.
  • Desactivar la protección contra asignación excesiva de memoria (overcommit) sin entenderlo puede causar fallos en otras partes.

Fuentes

  1. Página del manual de proc(5): oom_score y oom_score_adj man7.org
  2. Gestión de falta de memoria (kernel.org) kernel.org

Nota: RainServer ofrece monitorización y limpieza segura para servidores Linux; muestra qué cambiará y pide confirmación primero.

Última revisión: