обновление кэша при использовании 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