
Предисловие: Этонетвопрос «как настроить StartServers».
У меня есть веб-сервер, который отлично работал в течение многих лет, и на прошлой неделе мы начали использовать CloudFlare, чтобы помочь снизить активность зондирования и DDOS. С тех пор я получаю журналы ошибок Apache, полные классических сообщений «Server seem busy», Adjust StartServers и т. д. и т. п. Я полагаю, что это происходит из-за того, что CloudFlare выполняет много подключений в фоновом режиме — возможно, для кэширования или чего-то еще. Поэтому я медленно начал увеличивать количество StartServers, MinSpareServers и т. п., но независимо от того, какие значения я устанавливал, сервер все равно сообщает об этой ошибке. Я убедился, что этот сервер действительно запускает mpm_prefork, и перезапускал сервер каждый раз, когда менял значение. Вот соответствующие значения, которые у меня есть в файле apache.cfg:
KeepAlive On
MaxKeepAliveRequests 1000
KeepAliveTimeout 5
<IfModule mpm_prefork_module>
StartServers 100
MinSpareServers 100
MaxSpareServers 150
MaxClients 1000
MaxRequestsPerChild 4000
</IfModule>
Пока ошибки регистрируются, нагрузка и трафик на сервере кажутся легкими. Я вижу, возможно, 70 одновременных подключений на пике, используя netstat, сервер использует только 1,5 ГБ из 8 ГБ ОЗУ, процессор вертит пальцами, диск и сетевой ввод-вывод низкие. И я видел, возможно, 10-20 экземпляров сервера, работающих (пик) согласно
пс aux|grep apache2
Несмотря на это, время отклика сервера и загрузки страницы, похоже, хорошее.
Мой вопрос: почему я получаю ошибку server seem busy, хотя ни одно из моих значений не меньше 100, но я вижу только обычно 70 подключений? Похоже, Apache игнорирует значения в файле apache2.conf.