回答:
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は両方のストレージバックエンドをすべてのリクエストに対して最も効率的な方法で使用したいと考えています。