Добавил еще один диск, сделал reload

proxy_cache_path /disks/ssd01 levels=1:2 keys_zone=cache_ssd01:32m
use_temp_path=off inactive=7d max_size=210G;
proxy_cache_path /disks/ssd02 levels=1:2 keys_zone=cache_ssd02:32m
use_temp_path=off inactive=7d max_size=210G;

split_clients $request_uri $disk {
        50% ssd01;
        50% ssd02;
}

Первый диск переполнился, при этом cache manager вообще ничего не удалял.
Сделал рестарт. Диск слегка почистился, но все равно не до max_size:
# df -h | grep ssd
/dev/sdb1                220G  219G  1.8G 100% /disks/ssd01
/dev/sdc1                220G   59G  151G  28% /disks/ssd02

В error_log две сотни подобных сообщений, не знаю, есть ли связь:

2016/02/27 14:43:52 [alert] 2367#2367: *1968479 open socket #49 left in
connection 5
2016/02/27 14:43:52 [alert] 2367#2367: *2286288 open socket #37 left in
connection 6
2016/02/27 14:43:52 [alert] 2367#2367: *2769369 open socket #96 left in
connection 27
2016/02/27 14:43:52 [alert] 2367#2367: *1987300 open socket #5 left in
connection 29
2016/02/27 14:43:52 [alert] 2367#2367: *2769354 open socket #3 left in
connection 35
2016/02/27 14:43:52 [alert] 2367#2367: *2286091 open socket #35 left in
connection 36
2016/02/27 14:43:52 [alert] 2367#2367: aborting


26 февраля 2016 г., 12:53 пользователь Roman Arutyunyan <a...@nginx.com>
написал:

> On Fri, Feb 26, 2016 at 10:44:17AM +0300, Vadim Lazovskiy wrote:
> > 25 февраля 2016 г., 21:28 пользователь Roman Arutyunyan <a...@nginx.com>
> > написал:
> >
> > >
> > > Попробуйте патч в аттаче.
> > >
> > >
> > Роман, спасибо! Теперь все работает как задумано.
> >
> >
> > > > И чтоб 2 раза не вставать, спрошу, отчего может возникать проблема с
> > > > переполнением диска?
> > > > Диск 220G, max_cache опустил до 190G, а на деле диск забивается под
> > > > завязку, причем именно кешем (proxy_cache_min_uses 1, slice 10m,
> 10-20
> > > rps).
> > > > В temp в этот момент не более 20 временных файлов размером ~ 10
> > > мегабайт. В
> > > > кеше все элементы <= 10 мегабайт.
> > > > Незакрытых удаленных файлов на диске нет.
> > > > В error log куча сообщений c No space left on device.
> > >
> > > Может быть такое, что кеш растет так быстро, что nginx не успевает его
> > > очищать.
> > >
> > > Еще одна причина - рестарт воркеров.  Если по какой-либо причине это
> > > происходит
> > > (например, из-за нестабильных 3rd-party модулей), то кеш может
> остаться в
> > > неконсистентном состоянии, что может приводить к описанной вами
> проблеме.
> > >
> > > Насколько часто это у вас это происходит?
> > >
> > >
> > В том-то и дело, что воркеры не падают и сборка без сторонних модулей.
> > Глядя на strace процесса cache manager, видно, что он что-то удаляет, но
> > каждый раз недостаточно.
> > Суммарный размер каталогов 0-f балансирует около значения размера диска
> > (220G) и до указанных 190G даже близко не опускается.
> > При этом '(deleted)' файлов на диске нет и в temp файлов суммарно
> мегабайт
> > на 300.
>
> Сколько файлов cache manager удаляет за раз?
>
> [..]
>
> --
> Roman Arutyunyan
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>



-- 
WBR,
Vadim Lazovskiy
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить