Что происходит при превышении 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