Re: nginx не удаляет устаревший кеш

Maxim Dounin mdounin at mdounin.ru
Thu Nov 29 14:25:12 UTC 2012


Hello!

On Thu, Nov 29, 2012 at 03:32:49AM -0500, SenatoR wrote:

> Добрые сутки!
> 
> После того, как была решена проблема с двукратным кешированием страниц, я
> хочу обсудить еще одну проблему: nginx не удаляет устаревший кеш. Также
> игнорируется max_size. Кеш у меня лежит в tmpfs. Ошибок в логе нету. Процесс
> cache manager висит. Если сделать:
> 
> service nginx restart
> 
> то кеш будет приведен в соответствие как по размеру, так и по валидности.
> 
> nginx version: nginx/1.2.5
> Debian 6 
> 
> Кеш определяется так:
> 
>  proxy_cache_path /var/tmp levels=1:2 keys_zone=my_cache:10m max_size=25m
> inactive=10m;
> ......
>  proxy_cache_valid 200 302 304 10m;
> 
> Что делаю не так?

Во-первых, следует уточнить терминологию.  По валидности кеш 
удаляться и не должен.  Должен - по неактивности (proxy_cache_path 
... inactive=10m), но неактивность - это отсутствие запросов к 
данному ресурсу, которое в общем случае не так просто обеспечить.

Если не соблюдается max_size - это странно, но при столь малых 
размерах кеша - вполне может быть например следствием того, что все 
(точнее - 20 наиболее редко используемых) лежащие в кеше ресурсы в 
настоящий момент обновляются, и поэтому не могут быть удалены.

Если хочется разобраться в деталях что же происходит в вашем 
конкретном случае - то нужен debug log:

http://nginx.org/ru/docs/debugging_log.html

-- 
Maxim Dounin
http://nginx.com/support.html



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