ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Зависания fastcgi серверов



On Thursday 14 September 2006 11:06, Igor Sysoev wrote:
> On Thu, 14 Sep 2006, Sergey Serov wrote:
> > On Saturday 09 September 2006 21:35, Sergey Serov wrote:
> >> On Saturday 09 September 2006 19:36, Igor Sysoev wrote:
> >>> On Sat, 9 Sep 2006, Sergey Serov wrote:
> >>>> Имею следующую проблему.
> >>>> Если у nginx выставлен таймаут напр. 10 сек., то иногда если fastcgi
> >>>> сервер не успел уложиться в эти 10 сек. он зависает судя по strace в
> >>>> read() того того файлового дескриптора, который судя по strace
> >>>> используется для связи с nginx.
> >>>>
> >>>> Проблема эта мучала меня сильно, главным обзазом тем, что я долго не
> >>>> мог понять природу зависаний. Но вроде сейчас все изучил, стало легче.
> >>>>
> >>>> По идее такого быть не должно, т.к. fastcgi должен получить broken
> >>>> pipe и завершить работу.
> >>>>
> >>>> Fastcgi сервер - скрипт Catalyst'a, который использует испытанный
> >>>> перловый модуль FCGI::ProcManager который живет без изменений аж 5 лет
> >>>> уже. Он в свою очередь использует CGI::Fast, который изменяется чаще.
> >>>>
> >>>> Кто тут виноват пока незнаю.
> >>>>
> >>>> Пока сделал pkill -9 -f perl-fcgi если не curl -sm 15 url.
> >>>>
> >>>> Видимо, правильнее всего написать свой ProcManager.
> >>>>
> >>>> У кого-нибудь были аналогичные проблемы и каковый были способы
> >>>> решения?
> >>>
> >>> Судя по тому, что используется strace - это Линукс.
> >>
> >> Во FreeBSD я тоже strace использую, даже использовал когда еще на Линукс
> >> не мигрировал, чем-то он мне больше нравился чем truss.
> >> Но в данном случае это Линукс.
> >>
> >>> Какое ядро ?
> >>
> >> 2.6.8-2-386
> >>
> >>> У меня последнее время на ядрах 2.6.x есть обратные сообщения - когда
> >>> сервер закрывает соединение - а nginx об этом не знает.
> >>
> >> В strace периодически вижу broken pipe на дескриптор коннекшина с nginx,
> >> при этом соотв. fastcgi продолжает работу.
> >>
> >> Сперва думал что проблема из-за firewall'а который немного необычно
> >> настраивается в отличии от ipfw. Но проблема не пропадала после его
> >> отключения.
> >>
> >> Можно с этим что-то поделать?
> >
> > Зависания иногда бывают фатальные.
> > Зависает один процесс fastcgi в статусе R и съедает весь процессор.
> > Кильнуть его нельзя, даже -9. PPID у него становится 1. Убить его вообще
> > не возможно, можно только ребутнуть сервер.
> > Несколько часов поиска результатов не принесли.
> > Задница полная :-(((
>
> Судя по симптомам, дело не в nginx'е, и не в fastcgi, а в ядре.

Я и не спорю :-)
Скорее дело в дешевом железе, которое используется сверх своих пределов.
Это Sempron 3100 и 512 памяти. Держит более 500к pageviews в сутки.
Не так много, но видимо это предел, учитывая загрузку диска под 100% в часы 
пик.

> Я могу сделать небольшой test-case того, что я видел во взаимодействии
> nginx/trac, но писать в lkml у меня нет никакого желания. Если есть
> желающие, то могу сделать.










 




Copyright © Lexa Software, 1996-2009.