Re: Расход памяти под кшэ-зону при proxy_cache_min_uses

Maxim Dounin mdounin на mdounin.ru
Вс Сен 11 10:57:43 UTC 2011


Hello!

On Sun, Sep 11, 2011 at 11:56:38AM +0400, Михаил Монашёв wrote:

> Здравствуйте.
> 
> Столкнулся с тем, что введя директиву
> proxy_cache_min_uses 2;
> сильно увеличился расход памяти под зону, что приводит подобным
> ошибкам:
> 2011/09/11 11:19:01 [crit] 90687#0: ngx_slab_alloc() failed: no memory in cache keys zone "optcache3"
> и последующему уменьшению размера кэша на диске.
> 
> Я  конечно  увеличил  размер  зоны,  но оперативки жалко. Она могла бы
> использоваться  файлухой.  Да  и  рассчитать  размер зоны теперь можно
> только экспериментальным путём.
> 
> Как  я  понимаю, память используется под хранение информации о файлах,
> которых  нет  на  диске,  но  которые  имеют счётчик обращений. Весьма
> возможно,  что  эту  информацию  можно  хранить  более  компактно, чем
> информацию о полноценном закэшированном файле.

Некуда особо компактнее: ключ, а равно все указатели, так или иначе 
хранить.  Максимум - можно поспиливать несколько полей, 
относящихся непосредственно к файлу на диске, таких как fs_size.  
Но:

1) это в разы усложнит работу с записями в кеше при необходимости 
преобразования записей одного типа в другой;

2) всё равно не позволит влезть в 64 байта на amd64, т.е. по 
прежнему будет использоваться 128 байт на запись.

Maxim Dounin



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