Как проверить, подходит ли выбранный размер кэша Varnish?

20

Я настроил свой кэш Varnish для использования кеша 512 МБ, используя:

varnishd ... -s file,/var/cache/varnish.cache,512M

Вопросов:

  • Как мне следить, если 512 МБ слишком мало, слишком велико или нормально?
  • Как получить текущий размер использования кэша?
  • Как узнать, как часто объекты удаляются из кеша из-за переполнения кеша?
knorv
источник

Ответы:

18

Я нашел решение:

Вы можете отслеживать, какой максимальный размер кэша (в данном случае 512 МБ) выделяет Varnish при запуске varnishstat. Затем ищите выходные строки "выделено байтов" и "свободных байтов".

Имеет место следующее соотношение:

Command line configuration of max size = [bytes allocated] + [bytes free]

В зависимости от размера «свободных байтов» вы можете точно настроить размер кеша, чтобы найти нужный уровень.

knorv
источник
14
Еще лучший индикатор для просмотра - «n_lru_nuked» ( varnishstat -1 -f n_lru_nuked) - он показывает количество объектов, удаленных из кеша.
knorv
1
varnishstat -f SMF.s0.c_bytes, SMF.s0.g_space
choonkeat
15

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

В идеале вы не хотели бы, чтобы счетчик LRU вообще увеличивался, поскольку выкидывание содержимого из кеша обычно означает, что его нужно выбрать заново, но если у вас длинный хвост, избежать LRU невозможно.

perbu
источник
что if your tail is longзначит?
cherouvim
Я думаю, что в этом контексте это означает, что если у вас есть много редко используемых элементов, которые попадают в кеш, занимая всю кеш-память. Это ссылка на эту концепцию: en.wikipedia.org/wiki/Long_tail
cam8001
1

Если вы не ожидаете, что все ваши данные поместятся в кеш, я бы посмотрел на соотношение попаданий в кеш и пропусков кеша. Вы получаете убывающую отдачу. Удвоение кеша, вероятно, уменьшит вдвое ваш уровень промахов, что является большим выигрышем, когда половина ваших запросов не кешируется, не так много, когда 90%.

EAS
источник