Re: Растет кол-во inode из-за кеша

Maxim Dounin mdounin на mdounin.ru
Пт Июн 16 14:25:24 UTC 2017


Hello!

On Fri, Jun 16, 2017 at 04:57:04PM +0300, Иван Мишин wrote:

> Крахов файловой системы не было, каталог /tmp/ram отдан исключительно под
> кеш nginx. За последнюю неделю набежало 5941794 файлов нулевого размера в
> кеш каталоге.
> В общем эта проблема очень актуальна для меня и преследует уже не первый
> месяц, есть у кого-нибудь идеи как я могу отдиагностировать ситуацию?
> Максим, можно подробнее про "кончилось место при копировании из каталога со
> временными файлами", не совсем понимаю что ты имеешь ввиду?

Если proxy_temp_path и proxy_cache_path находятся на разных 
файловых системах, то просто переместить временный файл в кеш 
нельзя, приходится его копировать, создав новый файл.  Подробнее 
про это рассказывается в описании директивы proxy_cache_path:

http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_cache_path

Если в процессе копирования произойдёт ошибка, например из-за 
того, что файловая система, на которой располагается кеш, 
переполнена, то в логе будет ошибка уровня alert, а в кеше 
останется лежать недописанный файл.

Отмечу в скобках, что если вот это:

> > > кеш в ramfs на 28Гб со следующими настройками:
> > >
> > > > proxy_cache_path /tmp/ram/ levels=1:2 keys_zone=level-1:20m
> > > > max_size=28000m inactive=1440m;

и правда озаначает, что размер ramfs - 28 гигабайт, то результат 
ожидаем.

Вы сказали nginx'у, что начинать чистить кеш надо при превышении 
размера в 28 гигабайт.  Если cache manager отвлечётся хоть немного 
на другие задачи (а он может заниматься другими кешами, если они 
есть, или просто уйти спать на 10 секунд, почистив всё) - файловая 
система переполнится, и будут ошибки.  Вам надо менять настройки.

-- 
Maxim Dounin
http://nginx.org/


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