delfi
@delfi
https://ittricks.ru

Как решить проблему подвисающих httpd демонов?

OS Centos 7
httpd (apache2) работает в режиме prefork. Так же стоит модуль mod_ruid2 для разграничения виртуальных хостов на разных пользователей, конфиг следующий:

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

<IfModule prefork.c>
    StartServers          3
    MinSpareServers       3
    MaxSpareServers        10
    ServerLimit            32
    MaxClients             32
    MaxRequestsPerChild    50
</IfModule>


Есть тяжеловесный сайт, который на кеширование тратит прилично памяти и процессорного времени. Через некоторое время вижу в htop следующую картину:
92131354cd9040018974671fb537a7bd.png

Полагаю, что-то подвисает на данном сайте и не высвобождает ресурсы.
Как одно из решений я предположил, что уменьшу значение MaxRequestsPerChild до 50, было раньше 1000, до того, как сайт перенесли, проблем не было. Но не помогло.
Выставил ограничение на потребление CPU, чтобы исключить перегрузку сервера с помощью RLimitCPU 40, но теперь просто увеличилось кол-во подвисших httpd процессов.
Каким образом выловить причину поедания ресурсов и почему они не высвобождаются со стороны сервера? Есть ли какое-то решение, которое со стороны конфигурации сервера будет безопасно перезапускать процесс httpd по истечению определенного времени, т.е. предотвращать подвисание на более, чем 2-3 часа, например?
  • Вопрос задан
  • 415 просмотров
Решения вопроса 1
opium
@opium
Просто люблю качественно работать
это цпу а не память он не может его как бы высвободить если что то считает
логично что вы сломали кеширование на сайте скорее всего
а так можно отпрофайлить тем же xhprof
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
30 апр. 2024, в 21:45
20000 руб./за проект
30 апр. 2024, в 21:36
1500 руб./в час