Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: nginx-0.7.44
Здравствуйте, Андрей.
>>> а можно ли сделать такую фичу кеширования:
>>> - сохранять в кеше, если время ответа бэкенда ($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 - потому что на него уже нет свободной памяти.
Даю подсказку: мемкашед может хранить сжатые ключики, а сами ключики
могут вытесняться из мемкашеда и это нормально. Если тебе критично,
чтобы они не вытеснялись, раздели мемкашеды на 2 группы. В одну
складывай то, что не должны вытесняться и заранее отведи памяти с
запасом. В другую складывай ключики, для которых вытеснение из
мемкашеда приемлемо.
>> Конечно надо найти скрипты, которые долго отвечают, но это всёравно
>> рано или поздно надо будет делать.
> Делается это, делается - но время ответа скриптов "нестабильно". И
> когда оно вдруг вырастает - вот тут бы и надо чуть охладить пыл
> юзеров, отдавая им сильнее закешированную страницу. Да и бэкенду
> даётся время "прийти в чувство".
Не вижу проблемы замерять время генерации ответа в самих скриптах и в
зависимости от этого кэшировать ответ в мемкашеде на соответствующее
время.
--
С уважением,
Монашёв Михаил, SoftSearch.ru
mailto:postmaster@xxxxxxxxxxxxx
ICQ# 166233339
http://michael.mindmix.ru/
Без бэкапа по жизни.
|