Назад | Перейти на главную страницу

Как Varnish справляется с нехваткой памяти?

Я использую 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 ГБ).

Подготовьтесь к вопросам:

Вопросы:

В этом сценарии я вижу, что Varnish фактически перестает отвечать на запросы. В тот момент, когда это происходит, у меня не заканчивается память или процессор на коробке.

Спасибо.


Следовать за:

Я тоже видел этот пост

который указал мне на

который, кажется, указывает на то, что все "просто происходит" ... но похоже, что на самом деле он отправляет запрос PURGE для URL-адреса, который может потребовать добавления соответствующего материала в ваш VCL (см. https://www.varnish-cache.org/docs/3.0/tutorial/purging.html)

Я собираюсь попробовать это и сделаю следующее, если это решит проблему.

Согласно вашим настройкам, вы, кажется, используете диск для хранения кэша лака.

Это не рекомендуется (для выступления), если у вас нет уважительной причины (например, sinni800).

Попробуйте использовать ОЗУ для хранения кэша лака ("malloc" вместо "file") и воспроизведите проблему.