Nginx перестает кешировать

Dmitry Zaytsev nginx-forum на forum.nginx.org
Пн Дек 19 10:30:33 UTC 2016


Добрый день.

Замечаю странное поведение nginx: в определенное время nginx перестает
кешировать данные с одного из бэкендов, а начинает просто проксировать
запросы на него. (на 2х других бэкендах такого не замечено). В итоге бэкенд
заваливается от количества трафика.

Конфигурация простая (в процессе поиска оптимальных параметров):

worker_processes auto;
worker_rlimit_nofile 65535;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

events {
    worker_connections 4096;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    proxy_cache_path /var/cache/nginx/ram keys_zone=ram:10m inactive=1m
max_size=35840m;


  location ~* \.(m3u8)$ {
        proxy_cache off;
        expires -1;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_next_upstream error timeout;
        proxy_pass http://$upstreamSet;
    }

    location / {
        index plst.m3u8;

        types {
            application/vnd.apple.mpegurl m3u8;
            video/mp2t ts;
        }

        proxy_cache ram;
        proxy_cache_key $host$uri;
        proxy_cache_valid 10m;
        proxy_temp_path /var/cache/nginx/ram/temp;
        proxy_store_access user:rw group:rw all:r;
        proxy_method GET;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_next_upstream error timeout;
        proxy_pass http://$upstreamSet;

В момент проблемы в ошибках только много записей
ignore long locked inactive cache entry count 13

А так же что закончились воркеры (но это как я понимаю следствие, а не
причина, т.к. если бы кончились воркеры, то запросы вообще бы отбрасывались,
а не проксировались). До момента проблема active connection около 2к, 1.5к в
статусе waiting, остальные 500 в witting.

Может ли это быть, что закончилось место под хеш ключи? Место под кеш
утилизировано где-то на половину.

Что странно - эта же конфигурация nginx при работе с другими бэкендами
работает стабильно при большей нагрузке.

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



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