気まぐれSE日記

地方でエンジニアしてます

Apacheの高速化

最終手段としては、ログを取らないっていうのも有りですけど。


Apache2系ではキャッシュモジュールでアクセスを高速化できるということを
つい最近知ったので、試してみました。


Apacheのダイナミックドキュメント キャッシュという機能を使用します。
このキャッシュには、ディスクにキャッシュを書き込むディスクキャッシュと
メモリ上にキャッシュを書き込むメモリキャッシュがあります。


メモリに余裕があって特に大きなファイルへのアクセスがない場合は、メモリキャッシュが良いでしょう。
今回は、メモリキャッシュを設定してみました。

とりあえず、RPMでapache2が入っている場合は、httpd.confに下記を追加してください。


...

#メモリキャッシュ

CacheEnable mem / # apacheからみた URL 「/」 配下のファイル・ディレクトリにメモリキャッシュを有効にする
MCacheSize 4096 # トータルのキャッシュサイズ
MCacheMaxObjectCount 255 # 最大キャッシュ数
MCacheMinObjectSize 1
MCacheMaxObjectSize 4096 # 最大キャッシュサイズ


このあと、Apacheを再起動して、設定反映してください。
これだけで、体感的に速くなったはずです。
テスト環境では、ページ描画に1秒程度かかっていたところ、0.4秒ほど短縮されました。
細かい画像ファイルがたくさんあるようなサイトにはかなり有効かと思います。


※ソースからコンパイルする場合は、configureオプションに --enable-cache --enable-disk-cache --enable-mem-cache をつけてください。