Добрый день.
Столкнулся со странной проблемой.
Дано: сервер на Amazon EC2(инстанс m1.large: ~ 2x2.3GHz CPU, 7.5 Gb RAM), на нем Debian 6.0 и крутится nginx + php-fpm 5.3.9(через юникс сокеты). Выполнены настройки под хайлоад как со стороны nginx/php так и со стороны системы. Нагрузка небольшая: 300+k хитов, запросы идут в основном на простой функционал(это баннерная сеть), база на отдельностоящем RDS работает без проблем. Прикручена система мониторинга от сервиса newrelic.com
PHP-FPM: работает в два пула. Второй с идентичным конфигом.
listen = /tmp/php-fpm.sock
listen.backlog = -1
pm = dynamic
pm.max_children = 100
pm.start_servers = 30
pm.min_spare_servers = 20
pm.max_spare_servers = 50
pm.max_requests = 100
Из экстеншенов только apc добавлено.
Проблема: через некоторое время(например немного позже пика активности) сервер перестает отвечать, зайти по ssh невозможно, старые коннекты отваливаются. Amazon CloudWatch показывает использование CPU на одном уровне(при разных настройках php-fpm было по разному, то 100%, то 50%, 25%).
Мониторинг от newrelic вообще отваливается и у них на сайте не отображаются никакие данные(м.б. какие то проблемы с сетью возникают).
Единственное что у меня есть это информация из /var/log/messages указывающая на как я понимаю проблему с памятью(спасибо Амазону что не додумались в своем мониторинге показывать загрузку оперативы).
Но остаются вопросы: почему не хватает 7.5 Гб, когда в пике по стате было максимум 3 Гб использовано(memory leak какой то?); почему зависает при этом и не попускается до парочки ребутов?
Админ из меня конечно не очень, может подскажите что можно помониторить, какие конфиги покрутить что бы решить данную проблему?
Заранее спасибо.
Вот график CloudWatch:
Вот /var/log/messages:
kernel: [235830.623812] hrtimer: interrupt took 46615898 ns
kernel: [236936.599597] php-fpm invoked oom-killer: gfp_mask=0x280da, order=0, oom_adj=0
kernel: [236936.599614] php-fpm cpuset=/ mems_allowed=0
kernel: [236936.599620] Pid: 25206, comm: php-fpm Not tainted 2.6.32-5-xen-amd64 #1
kernel: [236936.599625] Call Trace:
kernel: [236936.599637] []? oom_kill_process+0x7f/0x23f
kernel: [236936.599644] []? __out_of_memory+0x12a/0x141
kernel: [236936.599650] []? out_of_memory+0x140/0x172
kernel: [236936.599657] []? __alloc_pages_nodemask+0x4e5/0x5f5
kernel: [236936.599664] []? xen_mc_flush+0x159/0x185
kernel: [236936.599671] []? handle_mm_fault+0x27a/0x80f
kernel: [236936.599678] []? do_brk+0x227/0x301
kernel: [236936.599685] []? do_page_fault+0x2e0/0x2fc
kernel: [236936.599693] []? page_fault+0x25/0x30