Увеличивается 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