Мы отслеживаем количество процессов 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
для получения более подробной информации о том, что делает каждый из этих процессов. Просто убедитесь, что надежно закрепили его.