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

Потеря процесса предварительной вилки Apache

Мы отслеживаем количество процессов apache через cacti. Я заметил, что процессы поднялись до 70, а затем упали до 20. Что может заставить Apache сделать это? Вот наши настройки prefork

StartServers       50
MinSpareServers    10
MaxSpareServers    100
ServerLimit       250
MaxClients        250
MaxRequestsPerChild  3000

У вас есть StartServers> MinSpareServers и MaxRequestsPerChild.

Это означает, что после того, как сервер обработал 3000 запросов, он умрет. Затем контроллер посмотрит на остальные серверы и сложит число бездействующих. Если это по крайней мере 10, то он не перезапустится.

Поэтому похоже, что ваш веб-сайт одновременно обслуживает около 10 запросов, и это нормальное поведение.

Может случиться так, что ваш веб-сайт имеет особенно «резкие» обращения, когда одновременно поступает множество запросов. В этом случае вы можете увеличить MinSpareServers.

Из ваших настроек ..

Apache всегда будет начинаться с 50 (StartServers) процессы. С этого момента он будет оставаться в пределах 10 (MinSpareServers) и 100 (MaxSpareServers) запущенные незанятые процессы, которые в настоящее время не обслуживают никакие запросы, в дополнение к любым процессам, которые обслуживают запросы. Общее количество неактивных и активных процессов никогда не превысит 250 (MaxServers). Каждый процесс будет остановлен, как только он отработал 3000 (MaxRequestsPerChild) Запросы.

Счетчик 20 процессов означает, что по крайней мере 10 или более из них простаивают, ожидая обслуживания запросов. Остальные могут быть простаивающими или активными. Apache будет масштабировать количество процессов вверх и вниз в пределах указанных вами параметров в зависимости от нагрузки.

Вы можете взглянуть на mod_status для получения более подробной информации о том, что делает каждый из этих процессов. Просто убедитесь, что надежно закрепили его.