Периодические проблемы под нагрузкой

waster nginx-forum на forum.nginx.org
Ср Фев 20 12:08:13 UTC 2019


Добрый день,

Для раздачи HLS используется схема из двух серверов cache-origin, ts-чанки
отдаются cache, а все запросы на m3u8-плейлисты проксируются на origin. На
cache настроено проксирование с keepalive. 

Кусок конфига cache: 
--------------------------------------------------------------------------------------------------

limit_req_zone $binary_remote_addr zone=hlslimit:10m rate=100r/s;

proxy_http_version 1.1;

upstream hls01 { 
    server X.X.X.X:80 fail_timeout=3s max_fails=3;
    keepalive 500;
    keepalive_timeout 10;
    keepalive_requests 100000;
}
...
location ~* \.ts$ {
   proxy_set_header Host "XXX.XXXXXXX.ru";
   proxy_set_header X-Cache-Host $host;
   proxy_buffer_size 16k;
   proxy_buffers 32 16k;
   proxy_ignore_headers "Cache-Control" "Expires";
   proxy_cache e_v;
   proxy_cache_key $host$uri$is_args$args;
   proxy_cache_valid any 1m;
   proxy_cache_use_stale updating;
   proxy_cache_lock on;

   proxy_pass http://hls01;
   add_header X-Proxy-Cache $upstream_cache_status;
 }
...
location ~* \.m3u8$ {
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header X-Forwarded-Proto $scheme;
   proxy_set_header Connection "";
   proxy_set_header Host "XXX.XXXXXX.ru";
   proxy_set_header X-Cache-Host $host;
   proxy_cache off;
   expires -1;
   limit_req zone=hlslimit burst=50 nodelay;
   proxy_pass http://hls01;
}
--------------------------------------------------------------------------------------------------


Кусок конфига origin: 
--------------------------------------------------------------------------------------------------

http {
...
   sendfile        on;
   tcp_nopush     on;
   tcp_nodelay     on;
   keepalive_timeout  15;
...
}
--------------------------------------------------------------------------------------------------


У cache 10G интерфейс, sysctl настроен.

Под нагрузкой периодически наблюдается такая картина:
https://imgur.com/a/B3fOWg7
По понятным причинам также резко подпрыгивает кол-во открытых файловых
дескрипторов.

В error.log на cache в эти моменты иногда (но не всегда) видны несколько
сообщений:
--------------------------------------------------------------------------------------------------

*137407049 upstream timed out (110: Connection timed out) while connecting
to upstream...
...
*143796692 limiting requests, excess: 50.400 by zone "hlslimit"...
--------------------------------------------------------------------------------------------------

В error.log на origin вообще тишина.

Подскажите, пожуалуйста, в чем может быть проблема? Только лишь в иногда
нестабильной сетевой связности между cache и origin, всплесками запросов?
Уже множество параметров было перенастроено как на origin, так и на cache,
но успехов в повышении стабильности это не дало.

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,283083,283083#msg-283083



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