Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ошибка в nginx ?
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
|