Re: Не работает upstream keepalive в связке с fastcgi-c бэкэндом

Maxim Dounin mdounin at mdounin.ru
Mon Dec 23 11:05:01 UTC 2013


Hello!

On Sun, Dec 22, 2013 at 01:24:03PM -0500, Helg wrote:

> Ок.
> Тогда прошу пояснить, как правильно все настроить.
> Дано: 
> 1. Однопоточный быстрый бэкэнд, который можно запустить в любом количестве
> копий
> 2. Сервер с 12 ядрами (24 потока в режиме гиперттединга)
> 3. Клиент, присылающий запросы в 16 потоков
> 
> То есть, нужно:
> - выбрать правильное число воркеров = W
> - запустить B копий бэкэнда
> - прописать K в keepalive
> 
> Помогите пожалуйста. Опишите зависимость между этими числами и как подобрать
> оптимальный конфиг?

Если бекенд умеет обрабатывать только одно соединение - включать 
keepalive нельзя.

Если отсутствие keepalive'а вызвает какие-то проблемы, помимо 
теоретической неудовлетворённости - есть два пути:

1) Заняться настройкой системы для решения этих проблем.  Проблемы 
обычно бывают на Linux'е, для решения - обычно хватает включаения 
tcp_tw_reuse / tcp_tw_recycle.

2) Заняться модификацей бекенда для поддержки нескольких 
соединений (i.e., реализовать общий listen-сокет и fork(), либо, 
если в качестве системы свежий linux, посмотреть в сторону 
SO_REUSEPORT).

-- 
Maxim Dounin
http://nginx.org/



Подробная информация о списке рассылки nginx-ru