Назад | Перейти на главную страницу

Был бы OOM_Killer успешным, если бы не SIGKILL?

На прошлой неделе оказалось, что пользовательское приложение заблокировало один из моих серверов. Это постепенно и медленно истощало память. Когда я пытался kill -9 PID PID вошел state D. Хотя это занимало память сервера и было, безусловно, самым требовательным к памяти процессом, я решил попробовать альтернативный подход - использовать OOM_Killer. Итак, я увеличил oom_adj до 15 и oom_score этого PID подскочил. Однако никаких действий со стороны OOM_Killer. У меня несколько вопросов:

  1. Убил бы OOM_Killer процесс, если бы SIGKILL не смог ?;
  2. В каком объеме доступной памяти работает OOM_Killer (в какой точке доступной памяти меньше X он выполняет)? Ожидает ли он, пока доступная память не достигнет зарезервированной ядра (64 КБ IIRC) ?;
  3. Как извлечь выгоду из OOM_Killer, вызывая его вручную или заставляя запускать раньше?

Для справки - сервер Ubuntu 9.10, ядро ​​2.6.31. Спасибо!