Я использую Varnish 3.0.3 (последний на момент написания) с более или менее стандартной установкой, используя следующее для хранения:
# # Cache file location
VARNISH_STORAGE_FILE=/var/lib/varnish/varnish_storage.bin
#
# # Cache file size: in bytes, optionally using k / M / G / T suffix,
# # or in percentage of available disk space using the % suffix.
VARNISH_STORAGE_SIZE=4000M
#
# # Backend storage specification
VARNISH_STORAGE="file,${VARNISH_STORAGE_FILE},${VARNISH_STORAGE_SIZE}"
#
Большинство страниц, которые можно кэшировать, будут иметь очень длинный TTL. Сайт, с которым я работаю, огромен и содержит миллионы страниц, которые никак не могут уместиться в указанном выше размере хранилища (4 ГБ).
Подготовьтесь к вопросам:
Предположим, что все пространство для хранения заполнено, и в кеше еще ничего не истекло (мой TTL составляет 2 недели для каждого отдельного элемента в кеше).
Я предполагаю, что Ban Lurker здесь бесполезен, потому что он удаляет только элементы с истекшим сроком действия, а ни один из них не просрочен.
Вопросы:
Учитывая описанный выше сценарий, что происходит с Varnish, когда поступают дополнительные запросы на то, чего еще нет в кеше? Предпринимает ли Varnish какие-либо попытки удалить старые элементы из кеша, независимо от TTL этих элементов? Varnish вылетает? Повесить?
Если Varnish не справляется со сценарием, могу ли я что-нибудь сделать, чтобы настроить его для лучшего выполнения сценария? (Очевидно, я мог бы снизить TTL элементов в кеше, но мне интересно, есть ли какие-либо дополнительные предложения).
В этом сценарии я вижу, что Varnish фактически перестает отвечать на запросы. В тот момент, когда это происходит, у меня не заканчивается память или процессор на коробке.
Спасибо.
Следовать за:
Я тоже видел этот пост
который указал мне на
который, кажется, указывает на то, что все "просто происходит" ... но похоже, что на самом деле он отправляет запрос PURGE для URL-адреса, который может потребовать добавления соответствующего материала в ваш VCL (см. https://www.varnish-cache.org/docs/3.0/tutorial/purging.html)
Я собираюсь попробовать это и сделаю следующее, если это решит проблему.
Согласно вашим настройкам, вы, кажется, используете диск для хранения кэша лака.
Это не рекомендуется (для выступления), если у вас нет уважительной причины (например, sinni800).
Попробуйте использовать ОЗУ для хранения кэша лака ("malloc" вместо "file") и воспроизведите проблему.