ID de la causa so-oom · Responsable principal Desarrollo de servidor (Equipo de desarrollo) · También Infraestructura de servidores (Equipo de infraestructura)
Cuando Linux se queda sin memoria, elige el proceso que más memoria usa y lo mata a la fuerza. Casi siempre es el servidor del juego.
Por qué Memoria agotada por una fuga o un pico de uso, o límite de memoria del contenedor alcanzado → Efecto El kernel cierra a la fuerza el proceso del servidor del juego → En pantalla Desconexión simultánea de todos los jugadores de ese servidor, con posible rollback del progreso reciente
Cuanto más tiempo lleva encendido, Cuando se junta mucha gente
Responsable
Responsable principal Desarrollo de servidor (Equipo de desarrollo) · También Infraestructura de servidores (Equipo de infraestructura)
Tareas (Equipo de desarrollo)
Corregir las fugas, fijar un tope de uso de memoria y un procedimiento que guarde y cierre el servidor de forma ordenada al acercarse a él.
Tareas (Equipo de infraestructura)
Configurar alertas de memoria, ajustar el límite de memoria del contenedor al uso real, ajustar el orden en que se matan los procesos (oom_score_adj).
Cifras de referencia
En el log del kernel (dmesg) queda “Out of memory: Killed process”, y en Kubernetes se ve como OOMKilled. Windows no tiene OOM killer; muchas veces la asignación de memoria falla y el servidor se cae con un error.
En el gráfico
Desconexión masiva · Número de conexiones, uso de memoria
Dónde mirar
Registro “Out of memory: Killed process” en dmesg; en Kubernetes, OOMKilled en el estado del pod; en cgroup v2, aumento de oom_kill en memory.events; todo cruzado con la hora de las desconexiones
Se confirma si
A la hora de la desconexión masiva hay un registro de que se mató el proceso del servidor del juego, y hasta justo antes el uso de memoria subió hasta el límite
Se descarta si
Si no hay registro de OOM pero el proceso murió, revisar los logs de crash y el core dump (ver “Crash del servidor”)
Se verifica con
Con herramientas de infraestructura (no hace falta código del juego)
Fuentes
mm/oom_kill.c (Linux v6.12)Linux kernel El cálculo da la puntuación más alta al proceso que más memoria usa (teniendo en cuenta oom_score_adj); al matarlo se registra “Out of memory: Killed process …”
Pushing the Limits of Windows: Virtual MemoryMicrosoft En Windows, al alcanzar el límite de confirmación (commit limit), fallan las asignaciones que confirman memoria, lo que puede provocar errores en las aplicaciones o fallos del sistema
Control Group v2Linux kernel oom_kill de memory.events: número de procesos que el OOM killer mató en este cgroup