обновление кэша при использовании proxy_cache

Andrew Kopeyko kaa at zvuki.ru
Wed May 6 13:37:49 MSD 2009


On Wed, 6 May 2009, Anton Yuzhaninov wrote:

> При использовании proxy_cache может возникнуть такая проблема - в тот момент когда данные в
> кэше устаревают на бэкенд начинают проксироваться все запросы, хотя для обновления кэша
> достаточно только одного запроса.
>
> Например:
> Страница X запрашивается 100 раз в секунду.
> На бэкенде эта страница генерится 1 секунду (если послать 1 запрос).
>
> В тот момент когда данные в кэше устарели, но обновленный ответ еще не закэширован, все
> приходящие запросы начинают проксироваться. В результате бэкенд получает 100 параллельных
> запросов на страницу Х, из за чего становится перегружен и генерит ответ не 1 секунду, а
> значительно больше. И получается положительная обратная связь - больше параллельных запросов -
> дольше ждать завершения первого запроса, который обновит кэш.
>
> Решение пока видится только такое - на бэкенда разрешить один (или несколько) параллельный
> запрос, а на все остальные выдавать ошибку 503.
>
> А в кэширующем nginx написать proxy_cache_use_stale http_503;
>
> Есть ли более красивые решения?

Все мы с нетерпением ждём реализации mod_accel'евских busy-lock'ов ...

Но Игорь почему-то не делает и не делает...


-- 
Best regards,
Andrew Kopeyko <kaa at zvuki.ru>






More information about the nginx-ru mailing list