LINUX.ORG.RU
ФорумAdmin

зависания apache 2


0

0

есть довольно нагруженный ресурс, иногда ( раз в пару суток ) апач повисает и приходится его перезапускать monit'ом. Как можно выяснить причину? После зависания проц ничем не занят, как будто сервер вообще отключили от сети, память тоже далеко не вся занята. error.log ничего не выдает, лимиты на кол-во процессов\ файловых дескрипторов не достигаются. настройки:

ServerLimit 500
StartServers 15
MinSpareServers 5
MaxSpareServers 10
MaxClients 500
MaxRequestsPerChild 0


Да, и еще, когда меняю MaxRequestsPerChild на 5000, сервер все равно зависает, но выборочно - для определенных клиентов. wtf тут может быть?

★★

Ответ на: комментарий от borisych

Ubuntu hardy, 2.2.8, рельсы крутятся с mod_rails. от них тоже сообщений об ошибках нету, просто отрубается и все, в браузере отваливается по таймауту.

volh ★★
() автор топика
Ответ на: комментарий от borisych

>похоже в убунте мультитредный апач и это его убивает

используется prefork, создаются именно новые процессы, а не нити, насколько я понимаю.

volh ★★
() автор топика
Ответ на: комментарий от volh

>используется prefork, создаются именно новые процессы, а не нити, насколько я понимаю.

точно гугл пишет что worker. сколько процессов httpd запущено в момент "зависания"?

borisych ★★★★★
()
Ответ на: комментарий от borisych

ну гугл пишет что worker, но насколько я помню, prefork все же дефолт везде.

demo@host:~$ dpkg -l | grep mpm

ii apache2-mpm-prefork 2.2.8-1ubuntu0.3 Traditional model for Apache HTTPD

то есть worker вообще не установлен.

>сколько процессов httpd запущено в момент "зависания"?

Когда Maxclients было 256, то 256 и было, забивалось полностью. Когда увеличил (вместе с ServerLimit конечно) и сделал MaxRequestsPerChild 5000, несколько десятков, не больше. Но от увеличенного MaxRequestsPerChild ошибки стали появляться только у части пользователей после долгого использования ресурса, т.е. отваливается по таймауту, но если зайти с другого компьютера ( с другим айпи ) - все ок.

volh ★★
() автор топика
Ответ на: комментарий от volh

>Но от увеличенного MaxRequestsPerChild

0->5000 это уменьшение, 0 в апачке - бесконечность. вообще симптомы как-то на prefork не похожи (по крайней подобное видел последний у peruser). Что можно сделать: 1. проверить что нет специфичных настроек iptables, вообще тот же conntrack любит делать черные дела 2. при зависании попробывать продиагностировать ситуацию при помощи strace и tcpdump 3. можно попробывать убрать keepalive, пользователи наврядли заметят 4. включить mod_status и помониторить что же там такое происходит с точки зрения апачки 5. тут должна уже быть какая-то специфика по диагностике mod_rails, скорее всего для начала нужно убрать мудреные настройки и оставить все в простом виде, достаточном для работы.

borisych ★★★★★
()
Ответ на: комментарий от borisych

спасибо, о tcpdump и mod_status я как-то не догадался, попробую

volh ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.