Увеличивается RPS и CPS при недоступности бэкэнда

Иван nginx на kinetiksoft.com
Вт Авг 23 23:39:45 UTC 2016


Здравствуйте!

У нас цепочка проксей для стриминга видео (плейлисты - m3u8+чанки - ts): эджи 
от пользователей проксируют на ориджины,ориджины на источники видео (source).

Почему-то при выпадании (connection timeout) одного из source взлетает rps и 
cps на соотвествующие ориджины. При высокой нагрузке настолько, что все вообще 
встает колом.

nginx 1.10.1 под debian 8 из репов на nginx.org.

Конфигурация upstream на эджах:
upstream o-place {
        server ip4_1:443 fail_timeout=60 max_fails=3 weight=3;
        server ip6_1:443 fail_timeout=60 max_fails=3 weight=3;
        server ip4_2:443 fail_timeout=60 max_fails=3 weight=1;
        server ip6_2:443 fail_timeout=60 max_fails=3 weight=1;
        server ip4_3:443 fail_timeout=60 max_fails=3 backup;
        server ip6_3:443 fail_timeout=60 max_fails=3 backup;
        keepalive 500;
}
Каждый ориджин тут задублирован по ИП4 и ИП6 (ip4_1 и ip6_1 - это один и тот 
же сервер, так же как и ip?_2, так же как и ip?_3), так как иногда между 
серверами отваливается по отдельности либо IP6, либо IP4.

У ориджинов в апстримах по одному source:
upstream source_place {
        server ip4:443;
                keepalive 200;
}

На эджах
proxy_next_upstream error timeout invalid_header http_500 http_502 http_504;

На ориджинах значение по умолчанию не менял.

Спасибо за помощь.

С уважением, Иван.


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