ошибка в nginx ?

Andrei Nigmatulin anight at eyelinkmedia.com
Wed Jul 9 01:50:09 MSD 2008


On Wednesday 09 July 2008 01:01, Gena Makhomed wrote:
> On Tuesday, July 8, 2008 at 21:49:59, Andrei Nigmatulin wrote:
> >> On Tuesday, July 8, 2008 at 20:13:44, Igor Sysoev wrote:
>
> IS>>> На данный момент, судя по
> IS>>> http://www.ruby-forum.com/topic/132314
> IS>>> я вижу только ошибку в ядре.
>
> GM>> скорее всего, что и ошибки в самом ядре Linux`а нет, потому что
> GM>> (цитирую тот ruby-форум) "This nginx runs inside Virtuozzo VPS"
>
> AN> Насколько я раскопал - linux kernel ведет себя так еще с версии 2.2.6:
> AN>
> http://www.issociate.de/board/post/456462/non-blocking_connect_and_EAGAIN.h
>tml
>
> понял, спасибо.
>
> если я все правильно понимаю - в той ситуации когда у backend`а
> уже закончился backlog - nginx в любом случае вернет ошибку 502 ?

Да.

> а какой при этом будет возвращен код ошибки из ядра,
> EINPROGRESS или EAGAIN - никакой особой роли не играет,
> и эту разницу можно будеть увидеть только по debug-логу?

Да. Тут в общем-то самое полезное, что может сделать nginx - сообщить о том, 
что ошибка произошла в момент подключения. Так как из "(134:
Transport endpoint is not connected) while sending request to
upstream" сложно понять, что на самом деле произошло.

> возвращаясь к тому исходному сообщению
> http://groups.google.com/group/highload-php-ru/msg/a5a2883173f56f5d
>
> - получается, что тут нет ошибки в ядре linux, которую можно исправить
> и получить лучший результат (например, меньше ошибок 502 на клиенте) ?

Можно увеличить somaxconn. По опыту, многим помогает.
Или перейти на tcp.
Или отказаться от linux.
Или каким-то образом ускорить выполнение php скриптов, чтобы backlog не 
переполнялся.


-- 
Andrei Nigmatulin
GPG PUB KEY 6449830D

Now I lay me down to sleep(3)
Pray the OS my core to keep
If I die before I wake
Pray the Disk my core to take


More information about the nginx-ru mailing list