Change upstreams weights dynamically according to their response times

Maxim Dounin mdounin at mdounin.ru
Sat Aug 3 10:27:16 UTC 2013


Hello!

On Fri, Aug 02, 2013 at 02:08:53PM -0400, ks2 wrote:

> Спасибо, Максим,
> 
> А как число соединений коррелирует со скоростью ответа апстрима? Со стороны
> клиентов в моем случае нагрузка вида "сервер-сервер", когда клиенты
> открывают относительно небольшое (в сумме 1000-1500) количество соединений,
> но посылают через каждое много запросов. Я правильно понимаю, что nginx
> открывает отдельное соединение на апстрим для каждого соединения с клиента?

По умолчанию - да, для каждого запроса открывается новое 
соединение с бекендом.  Можно ещё настроить кеш соединений с 
бекендами, см. http://nginx.org/r/keepalive.

> Подходит ли в таком случае балансировка least_conn?

Главное, чтобы суммарное количество параллельно выполняющихся 
запросов было больше, чем количество бекендов.  Понятно, что если 
бы запросы поступали по одному соединению, и соответственно к 
началу выполнения следующего запроса предыдущий уже был бы 
гарантированно завершён - то least_conn бы не работал (точнее, 
работал бы как обычный round-robin).  Но 1000-1500 соединений 
должно с запасом хватить для нормальной балансировки.

-- 
Maxim Dounin
http://nginx.org/en/donation.html



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