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 следующую картину:

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