linux – ¿Es posible activar OOM-killer en el intercambio forzado?

Pregunta:

¿Es posible que el sistema intercambie de forma preventiva las páginas inactivas ( vm.swappiness ), pero invoque el oom-killer cuando el sistema se quede sin RAM (en lugar de quedarse sin memoria) y se vea obligado a intercambiar?

El objetivo final es evitar que el sistema se detenga cuando comience a golpear el disco debido a fallas importantes en la página, pero aún así permitir que las páginas inactivas se intercambien.

Otro deseo sería configurar cuánta memoria de intercambio se ve obligado a usar el sistema antes de que se active oom-killer. De esta manera, el sistema puede sumergirse un poco en el intercambio, siempre que no vaya demasiado lejos. O podría establecer tal umbral para activar oom-killer antes de usar toda la RAM para que siempre haya espacio para la caché del sistema de archivos (y así evitar más golpes de disco).

No parece que esto sea tan difícil de hacer. Parece que podría decirle al asesino de oom que se active cuando el sistema tenga X ram usado / libre. Pero es por eso que estoy preguntando; No sé.

Para aclarar, no estoy buscando desactivar el intercambio ni ajustar el parámetro vm.swappiness

Respuesta:

También luché con ese problema. Solo quiero que mi sistema siga respondiendo, pase lo que pase, y prefiero perder procesos a esperar unos minutos. Parece que no hay forma de lograr esto usando el asesino de kernel oom.

Sin embargo, en el espacio de usuario, podemos hacer lo que queramos. Así que escribí Early OOM Daemon ( https://github.com/rfjakob/earlyoom ) que eliminará el proceso más grande (por RSS) una vez que la RAM disponible descienda por debajo del 10%.

Sin Earlyoom, ha sido fácil bloquear mi máquina (8GB RAM) iniciando http://www.unrealengine.com/html5/ varias veces. Ahora, las pestañas del navegador culpables mueren antes de que las cosas se salgan de control.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım