nginx & OOM killer & vm.overcommit_memory

Eugene Batogov johnbat26 на gmail.com
Чт Янв 27 16:36:09 MSK 2011


Привет всем.

Вчера случилось следующая проблема.

Есть nginx, memcached и jboss.

Поставили comet.

Все лимиты установлены правильно.

После достижения 50000 соединений ядро Linux неожиданно

убило без суда и следствия memcached и jboss.

Ни логов, ничего нет.

Позже выяснилось, что это OOM Killer.

Памяти на сервере 8Гб.

Её было достаточно, + целый swap не использовался.

------------

Почитал тут о OOM killer:
http://catap.ru/blog/2009/05/03/about-memory-oom-killer/

есть следующие настройки ядра для этого:

   - самый простой способ повлиять на OOM Killer -- использовать
   vm.overcommit_memory<http://catap.ru/blog/2009/05/05/about-memory-overcommit-memory/>
   ;

 У нас по умолчанию стоят:

- /proc/sys/vm/overcommit_memory - 0

- /proc/sys/vm/overcommit_ratio - 50

   - vm.oom_dump_tasks -- делать dump всех процессов за исключением kernel
   threads, в dump попадает pid, uid, tgid, vm size, rss, cpu и oom_adj. Имеет
   смысл включать только для отладки OOM Killer;
   - vm.oom_kill_allocating_task -- убивать процесс, процесс которому не
   хватило памяти, без выбора самого плохого;
   - vm.panic_on_oom -- считать запуск OOM критической ошибкой.

 У кого какие параметры стоят?

Кто что порекоммендует? Как избежать внезапных падений из-за большого
количества открытых соединений?
-- 

Best Regards, Eugene Batogov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20110127/1cc1a3fe/attachment-0001.html>


Подробная информация о списке рассылки nginx-ru