Answers:
使用malloc
方法。它将尝试将所有内容放入RAM,并且内核将在需要时将其交换出去。这样,您可以同时使用内存和磁盘。
同时,file
性能要比malloc
开始打磁盘时要好得多。有关更多信息,请参见:
file
后端,并依赖Linux的磁盘缓存,该磁盘默认情况下使用所有可用内存。是的,您总是在写磁盘(如果不使用SSD可能会出现问题),但是当多次读取相同文件时,您只会从内存中读取很多内容。
您需要分别命名存储如下,并在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
if (req.url ~ "html")
条件吗?我认为OP希望对所有请求以最有效的方式使用两个存储后端。