2010-06-23 Varnishでキャッシュしてみた
■[Server][Varnish]Varnishでキャッシュしてみた

前回は、Nginxでキャッシュを行いましたが、今回はVarnishでキャッシュサーバを構築してみました
インストール
yum -y install pcre-devel yum -y install expect wget http://downloads.sourceforge.net/project/varnish/varnish/2.1.2/varnish-2.1.2.tar.gz cp varnish-2.1.2.tar.gz /usr/src/redhat/SOURCES/ tar xzvf varnish-2.1.2.tar.gz cd varnish-2.1.2/redhat rpmbuild -bb varnish.spec rpm -ivh /usr/src/redhat/RPMS/i386/varnish-libs-2.1.2-1.i386.rpm rpm -ivh /usr/src/redhat/RPMS/i386/varnish-2.1.2-1.i386.rpm mkdir /tmp/varnish chown varnish.varnish /tmp/varnish
設定
vim /etc/varnish/default.vcl
backend default {
.host = "127.0.0.1";
.port = "80";
}
sub vcl_recv {
if (req.request != "GET" && req.request != "HEAD") {
return(pipe);
}
if (req.http.Cache-Control ~ "no-cache") {
return(pass);
}
return(lookup);
}
sub vcl_fetch {
if (!beresp.cacheable) {
return(pass);
}
if (beresp.http.Set-Cookie) {
return(pass);
}
if(beresp.http.cache-control ~ "no-cache" || beresp.http.Pragma ~ "no-cache") {
return(pass);
} set beresp.http.cache-control = "max-age = 3600"; set beresp.ttl = 3600s;
set beresp.grace = 30s;
}
vim /etc/sysconfig/varnish
DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-u varnish -g varnish \
-p thread_pools=2 \
-p thread_pool_add_delay=2 \
-p thread_pool_min=400 \
-p thread_pool_max=4000 \
-p listen_depth=4096 \
-p ping_interval=2 \
-S /etc/varnish/secret \
-s file,/tmp/varnish/varnish_storage.bin,1G"
起動
- 設定ファイルを確認して起動
- エラーが無ければC言語で記述された情報が表示されます
varnishd -C -f /etc/varnish/default.vcl service varnish start
ベンチマークとってみた
-Apache Requests per second: 96.34 [#/sec] (mean) Time per request: 103.803 [ms] (mean) -Nginx Requests per second: 96.46 [#/sec] (mean) Time per request: 103.674 [ms] (mean) -Varnish Requests per second: 85.65 [#/sec] (mean) Time per request: 116.758 [ms] (mean)
キャッシュなしとNginxがほぼ同等の性能で、Varnishでは性能が劣化しました
ログを確認するとちゃんとキャッシュにあるものに関してはキャッシュからレスポンスを返しているのですが・・・
ちなみに、キャッシュに存在するファイルだけにアクセスしてもこの結果と同じ感じでした
原因を調査したいと思います
参考
ウノウラボ by Zynga Japan: Varnishの使用例とか
Error 404, Page not Found » オープンソース研究室
コメントを書く
