Что происходит при превышении keys_zone?

Maxim Dounin mdounin на mdounin.ru
Пт Авг 25 16:20:19 UTC 2023


Hello!

On Fri, Aug 25, 2023 at 12:51:23PM +0300, Иван wrote:

> Здравствуйте!
> 
> Что происходит при превышении размера keys_zone, например, в директиве 
> proxy_cache_path ? Пишется ли ошибка в логи и, если да, то на каком 
> уровне логирования?
> 
> В моей памяти почему-то отложилось, что nginx не должен лимитировать 
> количество файлов в кеше по этому параметру, а при превышении его должен 
> сыпать ошибками в логи. Однако на практике мы сейчас, похоже, наблюдаем, 
> что из-за того, что неверно посчитали keys_zone (указали 100m для кэша с 
> более чем миллионом файлов, кеш не использовался на полную: не 
> заполнялся даже близко к max_size, а в логах тишина.

Начиная с версии 1.9.13 nginx автоматически следит за количеством 
элементов в keys_zone:

    *) Добавление: теперь cache manager следит за количеством элементов в
       кэше и старается не допускать переполнений зоны разделяемой памяти.

Теоретически alert "could not allocate node in cache keys zone..." 
получить всё ещё можно (если cache manager не уследит за 
заполненностью keys_zone, и удаление самого старого элемента кэша 
тоже не поможет), но на практике это маловероятно.

-- 
Maxim Dounin
http://mdounin.ru/


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