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
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@xxxxxxxx>
|