Я заинтересован в максимальном увеличении количества обращений к кешу и эффективности для медленно меняющегося сайта. Виртуальный хост не имеет большого объема оперативной памяти, но я хотел бы использовать то, что доступно для лака, но вернуться к кешу диска, если памяти недостаточно.
Можно ли это сделать с помощью одного экземпляра лака? В документы описать хранилище "file" и "malloc" как отдельные параметры.
Использовать malloc
метод. Он попытается поместить все в ОЗУ, и ядро при необходимости заменит его. Таким образом, вы используете память и диск вместе.
В то же время file
работает намного лучше, чем malloc
когда вы начинаете бить диск. Для получения дополнительной информации см .:
Вам нужно назвать хранилище соответственно следующим образом, и в vcl вы указываете, с каким внутренним хранилищем вы хотите использовать beresp.storage = storage_name
. .
Лак 3. * варианты процесса
DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s foo=malloc,512m \
-s bar=file,/var/lib/varnish/varnish_storage.bin,512m"
vcl v3
sub vcl_fetch {
if (req.url ~ "html") {
set beresp.storage = "foo";
set beresp.http.x-storage = "foo";
} else {
set beresp.storage = "bar";
set beresp.http.x-storage = "bar";
}
return (deliver);
}
Для Varnish v4 вы можете следовать инструкциям в официальном блоге https://info.varnish-software.com/blog/partitioning-your-varnish-cache