Re: Лимиты размера кеша nginx

Maxim Dounin mdounin на mdounin.ru
Пт Авг 19 09:06:53 UTC 2011


Hello!

On Fri, Aug 19, 2011 at 01:28:34PM +0600, klimov.d.e at gmail.com wrote:

> Добрый день.
> 
> Использую nginx 1.0.5 и такую настройку кеша:
> 
> proxy_cache_path  /storage/nginx_cache
>     levels=2:2
>     keys_zone=img:4096m
>     inactive=7d
>     max_size=50g;
> 
> Но размер директории /storage/nginx_cache растет примерно до 4ГБ.
> Если убрать параметр max_size=50g то он растет дальше.

А после убирания max_size дождались полной загрузки кеша (должен 
завершиться процесс "cache loader")?  Если нет - то дальнейший 
рост скорее всего был связан с тем, что кеш ещё загружался, и не 
стирались файлы, к которым давно не обращались (параметр 
inactive).

> Выходит что размер лимита кеша в памяти "важнее"? При этом он
> обязательный параметр. Как тогда использовать max_size?

Размер зоны в памяти - ограничивает количество элементов кеша, 
размер на диске - только опосредованно через количество элементов.  
Зоны размером 4096m должно хватить на ~33 миллиона файлов (128 
байт памяти на файл).

Вообще лимитирующих размер кеша факторов три:

1. Параметр inactive=, если к файлу никто не обращался в течении 
заданного времени - его сотрут.

2. Параметр max_size=, если размер кеша больше - nginx начинает 
стирать файлы, к которым дольше всего не обращались (эффективно 
уменьшая inactive=, см. выше).

3. Размер зоны, в кеше не может быть больше чем (размер зоны / 128 
байт) файлов.

Maxim Dounin



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