У меня есть сервер Apache, который обращается к исходному коду через NFS (с отдельного выделенного файлового сервера NFS). Периодически сервер Apache перестает принимать новые запросы (фактически останавливая сервер), и когда я смотрю на него, он заполняет MaxClients. После дальнейшего исследования сайт не так уж занят ... причина заполнения стека заключалась в том, что каждый процесс Apache застрял в состоянии «отправка ответа» (все W через mod_status). Вдобавок вверху каждый процесс apache находится в состоянии «lockf», что заставляет меня думать, что это проблема NFS. Я не могу найти много информации об этом в Интернете, и в эти выходные я выдергивал волосы, пытаясь понять это. Есть ли у кого-нибудь идеи о том, что может происходить, или как я могу дополнительно диагностировать проблему?
Спасибо!
У нас только что возникла проблема с аналогичными симптомами, серверы попадают в MaxClients, тогда количество процессов apache не падает, и новые клиенты не могут подключиться.
Похоже, проблема была вызвана взаимоблокировкой из-за взаимодействия наших веб-приложений и настройки MaxClients на Apache. Другой вопрос здесь, на ServerFault, указал мне в правильном направлении: Apache достигает MaxClients и блокирует сервер
edit: Кстати, поскольку мы не можем исправить наше приложение на данный момент, нам пришлось довольствоваться добавлением дополнительных веб-серверов и снятием ограничения для параметра MaxClients.
Если ваши журналы записываются на ваш сервер nfs, убедитесь, что вы указали директиву Lockfile на локальном диске.
Джеймс Йель прав. В настоящее время вы страдаете ужасным «синдромом перпертуального Буша» (никому не нравится навсегда останавливаться на «W»). Короче говоря, вам нужно отследить, какой скрипт «застрял в W», и выяснить, какие переменные передаются скрипту, который приводит к блокировке. вот очень хорошая статья, которая должна помочь: Решение Httpd MaxClients и статус мода "застрял в W"