harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

[apache]mod_file_cacheメモ

   


mod_file_cache/apacheのキャッシュ設定

頻繁にアクセスが発生するファイルをメモリキャッシュにいれ、
毎回ファイルシステムからアクセスしなくて済むようにする。
コレによって画像ファイルへのアクセスをディスクから物理メモリに移動し
リクエスト時のI/Oの増加を防ぎ、処理を早く返す。

【参考書】
オライリー/apacheクックブック 213ページ

1)mmap.confの設定

メモリキャッシュに格納するファイルのリストを作成する。
今回は画像ファイルをメインで選択。

  • /etc/httpd/confにリストの一覧ファイルを作成。
    ファイル名:mmap.conf

    # pwd
    /etc/httpd/conf
    # find /var/www/html/xoops/html/images/ -type f -print | sed -e 's/.*/mmapfile &/' > /etc/httpd/conf/mmap.conf
    # less mmap.conf
    mmapfile /var/www/html/xoops/html/images/alignright.gif
    mmapfile /var/www/html/xoops/html/images/italic.gif
    mmapfile /var/www/html/xoops/html/images/linethrough.gif
    mmapfile /var/www/html/xoops/html/images/image.gif
    mmapfile /var/www/html/xoops/html/images/s_poweredby.gif
    mmapfile /var/www/html/xoops/html/images/await.gif
    mmapfile /var/www/html/xoops/html/images/pointer.gif
    mmapfile /var/www/html/xoops/html/images/alignleft.gif
    mmapfile /var/www/html/xoops/html/images/subject/icon1.gif
    mmapfile /var/www/html/xoops/html/images/subject/icon2.gif
    mmapfile /var/www/html/xoops/html/images/subject/icon3.gif
    mmapfile /var/www/html/xoops/html/images/subject/icon5.gif
    mmapfile /var/www/html/xoops/html/images/subject/icon4.gif
    mmapfile /var/www/html/xoops/html/images/subject/icon6.gif
    mmapfile /var/www/html/xoops/html/images/subject/icon7.gif
    mmapfile /var/www/html/xoops/html/images/subject/index.html
    .....
    .....

2)httpd.confの設定

2-1.mod_file_cacheモジュールを読み込む

RPMのapacheではデフォルトでモジュールが入っている。
ソースからコンパイルするときはオプションで追加。
で、ともに以下の行をコメントアウトして有効にする。

LoadModule file_cache_module modules/mod_file_cache.so

2-2.EnableMMAPディレクティブを有効化

デフォルトでで有効になっているのでコメントになっている。
設定はそのままでもよいが、わかりやすくなるので明示的にコメントアウトしてonにする。

< #EnableMMAP off
---
> EnableMMAP on

2-3.リスト一覧ファイルを読み込む設定を追加

1で作成したmmap.confをインクルードするためhttpd.confに追加。

Include conf/mmap.conf

3)設定の適用

上記まで設定できたらconfigtest。
すると以下のようなメッセージが表示される。

[root@harumaki conf]# /etc/init.d/httpd configtest
[Sat Dec 23 01:50:54 2006] [warn] (22)Invalid argument: mod_file_cache: unable to 
mmap /var/www/html/xoops/html/images/icons/index.html, skipping
Syntax OK
[root@harumaki conf]# 

index.htmlはなぜか許可されない様子で、スキップされる。
書式は問題ない様子だがindex.htmlはキャッシュには入らない?
テキストファイルなのでキャッシュになくても問題ないが原因を知りたい&
configtestでエラーが出るのはウザいので、mmap.confのりすとからindex.htmlの行を削除。
再度configtestを行ってOK。
原因は暇なときに調査。

4)apacheをrestart

この設定をした場合はgracefulでなくrestartで。

# /etc/init.d/httpd restart | tail -f /var/log/httpd/error_log

 - apache, web, メモ