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

Можно ли запустить лак как с памятью, так и с дисковым хранилищем?

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

Можно ли это сделать с помощью одного экземпляра лака? В документы описать хранилище "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