Last Updated on 2016年6月9日 by かんりにん
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