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

Процесс apache httpd может быть убит ядром oom

использование памяти и процессора некоторых процессов apache httpd слишком велико, их может убить ядро, но я не знаю, почему httpd использует так много памяти. Мне нужен какой-то метод для анализа или какой-то метод для воспроизведения.

какое-то сообщение об apache и syslog

Server version: Apache/2.2.34 (Unix)
Server built:   Aug 17 2017 15:49:40

сообщение системного журнала

Oct 19 15:28:20 kernel: httpd invoked oom-killer: gfp_mask=0x280da, order=0, oom_adj=0, oom_score_adj=0

Oct 19 15:28:20  kernel: httpd cpuset=/ mems_allowed=0-1

Oct 19 15:28:20  kernel: Pid: 7446, comm: httpd Not tainted 2.6.32_1-12-0-0 #1

Oct 19 15:28:20  kernel: Call Trace:

Oct 19 15:28:20  kernel:  [<ffffffff8108acf6>] ? dump_header+0x7c/0x187

Oct 19 15:28:20  kernel:  [<ffffffff8108b24b>] ? oom_kill_process+0x6c/0x17b

Oct 19 15:28:20  kernel:  [<ffffffff8108b784>] ? out_of_memory+0x32e/0x392

Oct 19 15:28:20  kernel:  [<ffffffff8108f6ce>] ? __alloc_pages_nodemask+0x694/0x7ff

Oct 19 15:28:20  kernel:  [<ffffffff810b60ac>] ? alloc_pages_vma+0x136/0x152

Oct 19 15:28:20  kernel:  [<ffffffff8109f281>] ? handle_pte_fault+0x16f/0x6f0

Oct 19 15:28:20  kernel:  [<ffffffff810033ee>] ? apic_timer_interrupt+0xe/0x20

Oct 19 15:28:20  kernel:  [<ffffffff813c5f70>] ? do_page_fault+0x444/0x46b

Oct 19 15:28:20  kernel:  [<ffffffff810a7984>] ? do_mremap+0x338/0x450

Oct 19 15:28:20  kernel:  [<ffffffff813c389f>] ? page_fault+0x1f/0x30

httpd ps img

Out of memory: Kill process 7446 (httpd) score 422 or sacrifice child

Killed process 7446, UID 500, (httpd) total-vm:922728068kB, anon-rss:28228104kB, file-rss:88kB

Это означает, что запрос на выделение X объема памяти не выполнен. Таким образом, Kenrel вызвал убийцу OOM, который завершит работу приложений с наибольшим потреблением памяти. В системе недостаточно физической памяти и / или памяти подкачки. Что можно использовать в качестве временного исправления, так это увеличить размер свопа до тех пор, пока на ваш сервер не будет добавлено больше модулей ОЗУ или емкости.

Также вы, скорее всего, настроили Apache с mpm_prefork как модуль Apache. Эта установка медленная и небезопасная. Современные настройки веб-сервера используют Apache с mpm_event. Это даст вам лучшую производительность, не занимая всю вашу память.