> а nginx делает запрос на бек и обновляет кеш. ну так все равно запрос на бек то будет ) какая разница - это произойдет сразу во время запроса клиента или чуть позже?
Игорь, может сделать такую опцию, которая бы не чистила кеш сразу (т.е. не удаляла физически файл), а заменяла его. То есть: кеш после истечения времени жизни не удаляется, если приходит запрос, то клиенту отдается то, что в кеше (хоть и данные устарели), а nginx делает запрос на бек и обновляет кеш. Тем самым не будет всплесков из-за того, что нужно обновить кеш. Типа lazy-кеш :)
On Mon, Jun 01, 2009 at 01:12:00PM +0300, Taras Murashko wrote:
> На продакшен сервере(Ubuntu 7.10) использую nginx 0.7.50 для кеширования
> изображений в различных разрешениях.
> Кеш достаточно большой около 10 гб.
>
> fastcgi_cache_path /opt/nginx-cache levels=2:2 keys_zone=img:50m;
>
> location /img/ {
> fastcgi_pass $backend;
> include fcgi_params;
> fastcgi_intercept_errors off;
> fastcgi_cache_key $server_addr$request_uri;
> fastcgi_cache img;
> fastcgi_cache_valid 304 1m;
> fastcgi_cache_valid any 100d;
> fastcgi_hide_header Set-Cookie;
> }
>
>
> В последнее время заменил, что с регулярностью раз в три дня, на сервере
> резко повышается io-wait (100% из 400%) на пару часов.
>
> У меня есть предположение, что в этот момент nginx начинает очищать кеш.
>
> Есть ли возможность указать, чтобы nginx только в определенное время (по
> расписанию) проводил очистку кеша?
nginx чистит кэш по мере того, как появляются новостребованные данные.
Это регулируется параметром inactive директивы proxy_cache_path.
Нужно смотреть, в каком состоянии находится кэш-менеджер в это время:
если D, то он работает с диском.