2004-08-20
本日のツッコミ(全1件) [ツッコミを入れる]
2006-08-20
@ [apache] mod_cache,mod_disk_cacheで高速化
Apache 2.2からはそれなりに安心して使えるようなので、この日記を動かしているmod_proxyサーバに試しにインストールしてみました。staticに組み込むのもどうかと思ったのでDSOでコンパイル。
$ export CFLAGS="-O3" $ ./configure --prefix=/usr/local/httpd_proxy \ --with-mpm=worker \ --enable-shared \ --enable-so \ --disable-asis \ --disable-cgid \ --disable-proxy-connect \ --disable-proxy-ftp \ --disable-proxy-ajp \ --enable-modules='rewrite action vhost-alias proxy proxy_balancer proxy_http' \ --enable-mods-shared='ssl headers deflate cache disk_cache mem_cache'
ちなみにこの日記のサーバは↓みたいな感じでmod_proxyサーバとmod_fcgidサーバに分散されています。mod_fcgidサーバが生成した動的コンテンツをmod_proxyサーバでキャッシュしてしまおう、というのが今回の狙いです。
diary.lampetty.net ---> +-- mod_fcgidサーバ1
|
+-- mod_fcgidサーバ2
httpd.confはこんな感じで設定。
LoadModule cache_module modules/mod_cache.so
LoadModule disk_cache_module modules/mod_disk_cache.so
<IfModule mod_cache.c>
<IfModule mod_disk_cache.c>
CacheEnable disk /
CacheRoot "/var/cache/httpd_proxy/disk_cache"
CacheMaxFileSize 128000
CacheMinFileSize 64
CacheDirLevels 4
CacheDirLength 5
</IfModule>
</IfModule>
んで、キャッシュの設定する前と後で ab でベンチを取ってみました。以下はキャッシュ設定前。
$ ab -n 50 -c 3 http://diary.lampetty.net/ This is ApacheBench, Version 2.0.41-dev <$Revision: 1.141 $> apache-2.0 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/ Benchmarking diary.lampetty.net (be patient).....done Server Software: Apache/2.0.55 Server Hostname: diary.lampetty.net Server Port: 80 Document Path: / Document Length: 23978 bytes Concurrency Level: 3 Time taken for tests: 43.483784 seconds Complete requests: 50 Failed requests: 1 (Connect: 0, Length: 1, Exceptions: 0) Write errors: 0 Non-2xx responses: 1 Total transferred: 1190600 bytes HTML transferred: 1175994 bytes Requests per second: 1.15 [#/sec] (mean) Time per request: 2609.027 [ms] (mean) Time per request: 869.676 [ms] (mean, across all concurrent requests) Transfer rate: 26.72 [Kbytes/sec] received (略)
キャッシュ設定後
$ ab -n 50 -c 3 http://diary.lampetty.net/ This is ApacheBench, Version 2.0.41-dev <$Revision: 1.141 $> apache-2.0 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/ Benchmarking diary.lampetty.net (be patient).....done Server Software: Apache/2.0.55 Server Hostname: diary.lampetty.net Server Port: 80 Document Path: / Document Length: 23978 bytes Concurrency Level: 3 Time taken for tests: 2.642869 seconds Complete requests: 50 Failed requests: 0 Write errors: 0 Total transferred: 1214651 bytes HTML transferred: 1198900 bytes Requests per second: 18.92 [#/sec] (mean) Time per request: 158.572 [ms] (mean) Time per request: 52.857 [ms] (mean, across all concurrent requests) Transfer rate: 448.75 [Kbytes/sec] received (略)
ご覧の通り、43秒→3秒弱なので爆速です。ディスクにキャッシュするだけでもこんなに速いとは。20%ぐらい速くなればいいかなーなんて控えめに思っていたので本当びっくりです。あとは安定して動いてくれることを祈るのみ。
[ツッコミを入れる]
# ADSL1M [今朝、見れなくてガッカリしました。治ってよかったです。 今メールしておきました。]