зависания на read

Dmitriy MiksIr miksir at maker.ru
Thu Sep 28 14:35:26 MSD 2006



Sergey Serov wrote:
> 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 способен обработать.

Статистика апача обычно показывает что-то такое:
_RRRR_RWWRWRRR_RWRRRR__W__RRW__R_RWR_RRWWRR_RRRWR._W_R___R_RR...
................................................................
................................................................
................................................................
Т.е. не в кол-ве соединений дело. Попробую, конечно, для апача таймаут 
поставить такой же, как у nginx...

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






More information about the nginx-ru mailing list