ПРОЕКТЫ 


  АРХИВ 


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]

"UNIX domain sockets" vs "IP sockets over localhost"



On Wednesday, July 9, 2008 at 12:03:24, Andrei Nigmatulin wrote:

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

>> возможно это такой подход - не заниматься интерпретацией сообщений
>> об ошибках, а только буквально сообщать в лог о том, что произошло.
>> аналогичный случай с другой ошибкой - http://sysoev.ru/nginx/docs/faq.html

AN> Нет, это не аналогичный случай.
AN> Тут ошибка ясна уже сразу после connect(),
AN> но попадает в лог не она, а другая, наведенная.

да. но о том, что "Transport endpoint is not connected" говорится явно.
причина этой другой ошибки скорее всего в том, что не удалось подключиться.

>> AN> Или перейти на tcp.
>>
>> а чем в такой ситуации может помочь переход на tcp?
>> в пределах localhost`а tcp ведь работает медленнее,
>> чем unix sockets - будет только больше 502 ошибок?

AN> tcp сокет вернет EINPROGRESS в этом месте,
AN> а значит соединение все-таки случится, но позже.

тогда - согласно POSIX стандарту система обязана установить соединение.
что в случае переполнения backlog`а уже невозможно, насколько я понимаю.

если рассматривать вариант

=======================
AN> В linux точно не возвращает ECONNREFUSED - сервер просто не отвечает на SYN,
AN> что дает соединению шансы установиться при очередном retransmittion.
=======================

это ничем не лучше увеличения размеров backlog`а.
тут только добавляется лишний overhead и timeouts

AN> А то, что tcp медленнее локальных сокетов вы сможете
AN> заметить только на тысячах или десятках тысяч rps.

AN> Зачем вам об этом вообще беспокоиться
AN> если php все равно съест 99.9% cpu ?

все-таки, лучше будет увеличить somaxconn до 1024,
эта рекомендация даже в FreeBSD handbook записана.

P.S. вот небольшое сравнение "UNIX domain sockets" и "IP sockets over localhost"
http://lists.freebsd.org/pipermail/freebsd-performance/2005-February/001143.html

насколько я понимаю, при достаточно большом значении somaxconn (1024 и больше)
"UNIX domain sockets" по всем параметрам будут лучше "IP sockets over localhost"
для выполнения задачи взаимодействия nginx frontend и anything localhost backend

-- 
Best regards,
 Gena




 




Copyright © Lexa Software, 1996-2009.