Лак Несоответственно вытесняет страницы из кеша
В нашей конфигурации с лаком мы имеем функцию vcl_fetch, определенную следующим образом:
if (beresp.ttl > 0s) { /* Remove Expires from backend, it's not long enough */ unset beresp.http.expires; /* Set the clients TTL on this object */ set beresp.http.cache-control = "max-age=900"; /* Set how long Varnish will keep it */ set beresp.ttl = 1h; /* marker for vcl_deliver to reset Age: */ set beresp.http.magicmarker = "1"; }
Затем в vcl_deliver:
if (resp.http.magicmarker) { /* Remove the magic marker */ unset resp.http.magicmarker; /* By definition we have a fresh object */ set resp.http.age = "0"; }
Проблема в том, что если я настрою скрипт (сценарий оболочки или скрипт php) для достижения одного и того же URL-адреса, я сначала вижу MISS, а затем HIT (пока все хорошо).
- Уменьшение максимальных настроек памяти в SQL 2005
- Устранение диска не работает на ESXi
- linux prompt: показать текущую ветку?
- Настроить SQL Server Express с помощью Profiler?
- Создание среды разработки из среды хостинга с общим хостингом (LAMP)
То, что я ожидаю сидеть, повторяется HITS до тех пор, пока не пройдет 1 час, один MISS на отметке 1 час, а затем снова час HIT. Другими словами, потому что я нажимаю один и тот же URL-адрес, он должен циклически переkeyаться между HIT и MISS каждые 1 час.
Вместо этого я вижу что-то вроде этого:
6/20/2013 6:30:05 - STRING HIT NOT FOUND 6/20/2013 10:32:11 - STRING HIT NOT FOUND 6/21/2013 12:33:06 - STRING HIT NOT FOUND 6/21/2013 2:34:06 - STRING HIT NOT FOUND
Сейчас 5:57 (почти 4 часа с тех пор, как HIT не найден).
Недостатки кеша выше всего появляются вокруг знака за полчаса, но они составляют 4 часа, 2 часа и 2 часа, а TTL установлен на 1 час.
Поэтому я не понимаю, почему object хранится дольше 1 часа и почему его выселяют на кажущиеся случайными интервалами. Как я могу лучше определить, что происходит?
Кстати, я использую лак 3, если это помогает.
- Как подkeyить ноутбук Mac к serverу через serial port?
- Конфигурация Sharepoint для перезаписи и управления версиями
- kjournald причины для высокого использования
- Где я должен размещать внешние библиотеки tomcat?
- Минимальный размер метаданных LVM при использовании btrfs
- Устранение диска не работает для гостей ESXi
- Как определить узкие места ввода-вывода на serverе Linux?
- Создание userской темы для Outlook Web App (OWA) в Exchange 2013
Таким образом, рассматриваемый server-лак был cachingм websiteа Drupal 7. На websiteе Drupal 7 был настроен и активирован module Drupal Varnish.
Насколько я могу судить, это периодически очищало кеш. Я смог определить, используя следующую команду и viewя BAN, которые я не выдал:
varnishadm -T localhost:6082 -S /etc/varnish/secret ban.list Present bans: 1371834738.031740 193 req.http.host ~ www.ourdomain.com && req.url ~ /