Я использую веб-сервер apache 2. Все работает нормально, но примерно каждые 14-20 дней мне приходится перезапускать веб-сервер, потому что он больше не отвечает.
Глядя на Мунин статистика, я понял, что это связано с количеством процессов apache. Они постоянно увеличиваются, пока не достигнут 150. Затем Apache не отвечает.
Как предотвратить "зависание" apache?
Вот скриншот статистики:
Подробности:
Журналы и сообщения о состоянии:
Расширенный статус apache показывает 30 из 45 этих строк (настоящее имя хоста заменено на SERVERNAME
):
22-5 - 0/0/75 . 0.00 1813 0 0.0 0.00 1.17 ::1 SERVERNAME OPTIONS * HTTP/1.0
Некоторые настройки Apache (настройки по умолчанию):
Вы, конечно, не должны видеть такое поведение - это означает, что в вашей системе что-то очень не работает.
Какие у вас настройки:
Timeout
KeepAlive
MaxKeepAliveRequests
KeepAliveTimeout
MaxRequestsPerChild
ServerLimit
MaxClients
?
Это предварительный форк или многопоточный apache?
Однако гораздо более вероятно, что проблемы возникают где-то еще. Использует ли apache какой-либо движок сценариев / приложений? Если да, то? Как это настроено?
Похоже, у вас есть некоторые запросы, которые никогда не завершаются, заставляя Apache запускать новые процессы, пока не будет достигнут настроенный максимум. После этого Apache не имеет возможности создавать новые процессы для новых запросов и кажется мертвым.
По тем немногим данным, которые вы нам предоставили, невозможно сказать, что может вызвать это.
Вы видите какие-нибудь подсказки в файлах журнала? Какие страницы вы обслуживаете клиентов? Статический HTML, PHP, CGI или что-то еще? На какой ОС?