Привет всем.
Вчера случилось следующая проблема.
Есть 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_memoryhttp://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
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru