ошибка в nginx ?

Igor Sysoev is at rambler-co.ru
Wed Jul 9 15:51:43 MSD 2008


On Wed, Jul 09, 2008 at 02:51:33PM +0400, Andrei Nigmatulin wrote:

> On Wednesday 09 July 2008 14:05, Igor Sysoev wrote:
> > On Wed, Jul 09, 2008 at 01:03:24PM +0400, Andrei Nigmatulin wrote:
> > > On Wednesday 09 July 2008 11:58, Gena Makhomed wrote:
> > > > On Wednesday, July 9, 2008 at 0:50:09, Andrei Nigmatulin wrote:
> > > > AN> Или перейти на tcp.
> > > >
> > > > а чем в такой ситуации может помочь переход на tcp?
> > > > в пределах localhost`а tcp ведь работает медленнее,
> > > > чем unix sockets - будет только больше 502 ошибок?
> > >
> > > tcp сокет вернет EINPROGRESS в этом месте, а значит соединение все-таки
> > > случится, но позже. В итоге 502 ошибок вообще не будет. Ну только если
> >
> > Когда backlog кончается, tcp сокет в этом месте обычно возвращает
> > ECONNREFUSED.
> 
> В linux точно не возвращает ECONNREFUSED - сервер просто не отвечает на SYN, 
> что дает соединению шансы установиться при очередном retransmittion.
> 
> > > бэкенду совсем плохо - появтся 504 после таймаута. А то, что tcp
> > > медленнее локальных сокетов вы сможете заметить только на тысячах или
> > > десятках тысяч rps. Зачем вам об этом вообще беспокоиться если php все
> > > равно съест 99.9% cpu ?
> > >
> > > > AN> Или отказаться от linux.
> > > >
> > > > зачем? при переполнении backlog`а будет точно такое же
> > > > поведение nginx`а и на других операционных системах...
> > >
> > > По крайней мере в BSD такой проблемы нет.
> >
> > Не уверен.
> 
> Ну по крайней мере так написано в приведенной выше ссылке. Это не правда ?

Если имеется ввиду
Notably, the BSDs don't send EAGAIN, as far as I can tell.
то это правда, поскольку EAGAIN действительно не возвращается.
Зато возвращается ECONNREFUSED (если я не ошибаюсь).


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list