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 mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru