ПРОЕКТЫ 


  АРХИВ 


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: зависания на read



On Thursday 28 September 2006 13:35, Dmitriy MiksIr wrote:
> Можно, конечно, но как это поможет?  Соединения отваливаются по таймауту
> nginx-а к бекенду.. если поставлю таймаут у апача меньше - нормально
> работать это не поможет - nginx будет ошибки клиенту давать...
>
> Пытаюсь смотреть в сторону настройки tcp соединений... хотя, по
> статистики nginx "Active connections: 336" не так уж и много, имхо. Пока
> ничего не получается.
> После ребута сервера все, вроде, на какое-то время нормализуется....

Ребут это как-то жестоко и примитивно для решения подобных проблем.
Бэкенд должен запросы быстро отрабатывать, на то он и бэкенд.
Если не ошибаюсь, то по умолчанию у Апача таймаут 300 сек., у nginx - 60.
Соотв. nginx рвет соеднинения раньше.
По идее в такой ситации апач должен получить broken pipe и быстро закрыть 
коннект, но иногда на Линуксе при большой нагрузке процесс не получает этого 
сигнала, и зависает в read навечно, или пока таймаут не наступит.
Если дизайн проекта позволяет, но нужно настроить nginx чтобы он повторял 
запросы в таких случаях.
Таймаут на стороне nginx больше не поможет, т.к. в какие-то моменты запросов 
может быть больше, чем backend способен обработать.

P.S. Во FreeBSD таких проблем нет. Там вообще все прямее и надежнее как 
оказалось. Убедился на собсвенном опыте в расхожем мнении, что фря надежнее 
при большой нагрузке. Думал устарело это мнение за последние несколько лет, 
но оказолось что нет, но обратного пути уже нет :-(

>
> Sergey Serov wrote:
> > On Monday 25 September 2006 14:04, Dmitriy MiksIr wrote:
> >> Да проблема в том, что много бекендов (апачей) в состоянии Reading,
> >> которые, по идее то, должны проскакивать мгновенно. Диск на этой стадии,
> >> вроде, не участвует еще...
> >
> > Попробуйте апачу таймаут поменьше выставить. Напр. 5-10 сек. если он
> > используется только как бэкенд будет вполне достаточно.
> > С своими проблемами с fastcgi я так и разобрался.
> > Правда, для этого пришлось патчить FCGI xs модуль, таймаутов там вообще
> > не было. Поэтому однажды зависнув fastcgi сервер зависал навечно.



 




Copyright © Lexa Software, 1996-2009.