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