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

2017-06-16 Пенетрантность Vasiliy P. Melnik
Здравствуйте

Раз уж пошла такая пьянка, то может подскажете, есть какие-то
противопоказания насчет использования use_temp_path=off


16 июня 2017 г., 17:25 пользователь Maxim Dounin 
написал:

> 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 mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2017-06-16 Пенетрантность Maxim Dounin
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 mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

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

9 июня 2017 г., 18:38 пользователь Maxim Dounin 
написал:

> Hello!
>
> On Fri, Jun 09, 2017 at 04:26:09PM +0300, Иван Мишин wrote:
>
> > Всем привет.
> > Столкнулся со следующей проблемой:
> > nginx последней стабильной версии
> > ОС CentsOS 6.9
> > кеш в ramfs на 28Гб со следующими настройками:
> >
> > > proxy_cache_path /tmp/ram/ levels=1:2 keys_zone=level-1:20m
> > > max_size=28000m inactive=1440m;
> > > proxy_temp_path /tmp/cache/nginx/proxy_temp;
> > > proxy_cache_key $server_name$request_uri;
> >
> >
> > Довольно активно растет кол-во inode на ramfs. Стал изучать ситуацию,
> > оказалось в кеше лежит куча файлов нулевого размера при чем среди них
> есть
> > и очень старые (месячной давности например). На 28Гб кеша, оказалось
> более
> > 6млн Inode задействовано, при этом после удаления нулевых файлов осталось
> > всего около 200к inode.
> > Вопрос зачем nginx хранит до бесконечности нулевые файлы? Как от этого
> > избавиться?
>
> Файлы нулевого размера в кеше - это не nginx, по крайней мере не
> его штатная работа, он просто не умеет ничего подобного создавать.
> Либо это последствия каких-то ошибок (кончилось место при
> копировании из каталога со временными файлами?), либо просто
> результат краха файловой системы.
>
> --
> Maxim Dounin
> http://nginx.org/
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru