Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: обновление кэша пр и использовании proxy_cache
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@xxxxxxxx>
|