ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
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>




 




Copyright © Lexa Software, 1996-2009.