Re: перекос в распределении при least conn

daevy nginx-forum at nginx.us
Wed Nov 13 12:49:47 UTC 2013


Валентин Бартенев Wrote:
-------------------------------------------------------
> 
> Вероятно потому, что nginx считает ваш бэкенд умершим.
> За причиной следует смотреть в error_log.

Я думаю я немного недоговорил, nginx не игнорирует бэкенд полностью, он
отправляет запросы, но очень небольшое количество. например из 100 запросов
на первые 3 уходит равномерно между ними по 30 запросов, а на оставшийся с
всего 10, т.е. недодает ему. 

Это очень хорошо видно если смотреть текущие коннекты к бэкендам со стороны
nginx.
netstat -tn |grep :8080 |awk '{print $5}' |cut -d\: -f1 |sort |uniq -c

Так что он не считает его совсем уж мертвым.

И еще, не стану скрывать, есть у нас одна ночная ситуация-операция при
которой все бэкендЫ в разные моменты времени перестают отвечать. Но когда
использовался round-robin, после того как ситуация прошла и бэкенды пришли в
себя, запросы продолжают ходить и из апстрима никого не выкидывало.

про логи...
В конфигурации настроено error_log info. За период когда это произошло, есть
только десяток сообщений такого типа:
[info] 10359#0: *734774549 recv() failed (104: Connection reset by peer),
client: 78.30.221.96, server: my_domain.ru, request: "GET / HTTP/1.0", host:
"DOMAIN.RU"

Надеюсь, я не внес неразберихи в свой вопрос?

> 
> > Из нее лишь понятно что у воркеров есть свои счетчики соединений. Но не
> > понятно, то ли это инкрементальные счетчики которые все время растут,
или
> > счетчики текущего количества соединений с бэкендом? 
> 
> Разумеется текущего.  Об этом и в документации сказано.
> 

значит меня ввела в заблуждение фраза "Currently, different workers have
distinct counters of active connections."

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,244603,244622#msg-244622



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