Re: Кеширование проблема: перестает кешировать
Maxim Dounin
mdounin at mdounin.ru
Mon Aug 19 10:52:35 UTC 2013
Hello!
On Mon, Aug 19, 2013 at 12:44:41PM +0300, Gena Makhomed wrote:
> On 19.08.2013 9:44, Dmitry E. Oboukhov wrote:
>
> >кешменеджер запустился, НИ ОДНОЙ ошибки в логах nginx нет. все хорошо.
> >потом... бац! на хосте нагрузка ~15-20.
> >смотрим в чем дело - апач все поел.
> >смотрим на чем - на закешированных запросах: GET /cached/бла/1234
> >
> >рестартуем nginx - нагрузка падает. потом в самый наплыв пользователей
> >опять... бац: кеш прорвало.
> >
> >благо что с нагрузкой на хосте 15-20 апач справляется и без кеша.
> >сайт тупит конечно, но работает.
> >
> >а когда кеш живой, то нагрузка 0.8-1.
> >
> >сейчас поставил nginx-лайт 1.4 (Debian/wheezy).. вчерашний пик
> >пользователей пережили вроде без прорыва кеша.
> >но правда и 1.2.1 его прорывал тоже не каждый раз.
> >
> >и самое интересное что когда прорывает кеш в логе ну ни записи.
> >просто пришла 1000 запросов. и апач бы должен был выполнить один, а
> >ему достается 600 из этой тысячи.
>
> кроме
>
> proxy_cache_lock on;
> proxy_cache_use_stale updating;
>
> есть еще директива proxy_cache_lock_timeout и по умолчанию там:
>
> proxy_cache_lock_timeout 5s;
>
> не может быть такой ситуации, что когда "самый наплыв пользователей"
> backend не успевает ответить за 5 секунд?
+1
Это штатный вариант, когда запросы к одному и тому же
ресурсу могут попасть на бекенд в больших количествах при
используемых настройках.
> в документации совсем не написано как себя в такой ситуации поведет
> nginx, возможно он тогда отпускает все клиентские запросы backend ?
Поведение документировано в описании proxy_cache_lock
(http://nginx.org/r/proxy_cache_lock):
: Other requests of the same cache element will either wait for a
: response to appear in the cache or the cache lock for this element
: to be released, up to the time set by the proxy_cache_lock_timeout
: directive.
После истечения времени, заданного директивой
proxy_cache_lock_timeout, запросы, очевидно, перестанут ожидать
cache lock'а.
--
Maxim Dounin
http://nginx.org/en/donation.html
Подробная информация о списке рассылки nginx-ru