nginx-0.7.44

Andrew Kopeyko kaa at zvuki.ru
Wed Mar 25 10:45:32 MSK 2009


On Tue, 24 Mar 2009, Монашёв Михаил wrote:

> Здравствуйте, Андрей.
>
>> а можно ли сделать такую фичу кеширования:
>> - сохранять в кеше, если время ответа бэкенда ($upstream_response_time)
>>    превысило MMM миллисекунд
>
>> Насколько это сложно?
>
>> Это позволит закешировать не всё подряд, а только наиболее тяжёлые (с
>> точки зрения бэкенда) запросы.
>
>
>> Развивая идею - хорошо бы ещё время кеширования сделать адаптивным,
>> зависящим от времени $upstream_response_time. Например, задавать таблицей
>
>> upstream_response_time           caching_time
>> =======================          =============
>> 0 < T < 0.5s                     10s
>> 0.5s < T < 1s                    30s
>> 1s < T < 2s                      60s
>> 2s < T < 5s                      2m
>> 5s < T < 10s                     10m
>
>> Насколько это реализуемо?
>
> А  почему  это  нельзя  реализовать  на  бэкенде,  складывая  данные в
> мемкешед  и  выставляя  время кэширования?

Нету memcached - потому что на него уже нет свободной памяти.

> Конечно надо найти скрипты,
> которые  долго  отвечают,  но  это всёравно рано или поздно надо будет
> делать.

Делается это, делается - но время ответа скриптов "нестабильно". И когда 
оно вдруг вырастает - вот тут бы и надо чуть охладить пыл юзеров, отдавая 
им сильнее закешированную страницу. Да и бэкенду даётся время "прийти в 
чувство".

>  Агрегируешь  аксес-лог  по $upstream_response_time и смотришь
> что   тормозит.  Ты  же  предлагаешь  реализовать  затычку,  убирающие
> симптомы, а не лечащую болезнь.

Похоже, мы по-разному понимаем болезнь:
- для тебя это "долго отвечашие скрипты"
- для меня это "неполучившие ответа пользователи"

В данный момент - мне важнее пользователя удовлетворить, пусть даже и 
устаревшей\неполной информацией.


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






More information about the nginx-ru mailing list