freebsd+nginx+php-fpm

Andrei Nigmatulin andrei.nigmatulin at gmail.com
Thu Jun 18 18:43:14 MSD 2009


On Thursday 18 June 2009 18:07, Gena Makhomed wrote:
> On Thursday, June 18, 2009 at 15:41:37, Andrei Nigmatulin wrote:
> >> unix sockets быстрее tcp сокетов.
>
> AN> Ответ не однозначен. Во-первых, это распространенное мнение
> AN> что unix sockets быстрее, но хотелось бы увидеть и бенчмарки.
>
> overhead в случае unix sockets меньше,
> поэтому они должны быть быстрее чем tcp.

Мне тоже интуитивно кажется, что они должны быть быстрее. Хочется увидеть 
конкретные цифры. Правильный бенчмарк, который все расставит по местам. Опыт 
вида "Был php сайт на tcp, перевели на unix sockets, стало на 50% быстрее" не 
принимаю во внимание по очевидным причинам.

> AN> Во-вторых, при переполнении listening queue
> AN> в случае unix sockets клиент будет получать оишбку 502,
>
> listening queue как раз и предназначена для сглаживания всплесков.
> 502 ошибку будут получать только те клиенты, которых backend сервера
> уже гарантированно не успеет обслужить, поэтому сразу возвращает ошибку.
> администратору всего лишь следует адекватно настроить размер listening
> queue.

Все дело в силе всплесков и плотности потока запросов. Можно и 10000 поставить 
и этого не хватит в момент затупления базы. Я исхожу из практических 
соображений и опыта. А вы видели хоть одного администратора, который знает 
как правильно расчитать размер listening queue, исключая подбор значений 
экмпериментально ?

> AN> тогда как tcp поддерживает retransmission и соответственно,
> AN> более устойчив к всплескам (кратковременному, непериодическому
> AN> увеличению) кол-ва запросов.
>
> feature "Retransmission of lost packets" работает
> уже после того, как было установлено соединение.

По крайней мере в случае linux сервера это не так. Клиентский syn просто 
игнорируется, если listening queue полный.

> но unix sockets работают в пределах одного хоста,
> проблемы "потери пакетов" там просто не может быть.



-- 
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