【apache】disk_cacheの設定の適正値
問題
apacheでmod_disk_cacheを使おうと思うのですが、disk_cache関連の以下の設定値はどのくらいがいいでしょう。
<IfModule mod_disk_cache.c> CacheRoot /var/cache/apache2/mod_disk_cache CacheDirLevels 2 CacheDirLength 1 </IfModule>
答え
disk_cacheを有効にすると、CacheRootで指定したディレクトリの中に、キャッシュがファイルとして生成される。
通常はキャッシュのためのディレクトリの中にさらにディレクトリわけをしてディレクトリわけをしてファイルをしまう。下図はそのディレクトリの様子。
ディレクトリ名には、以下の64文字が使用されている。
0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz
64文字も使用できる文字があるということは、以下の設定でディレクトリ名に2文字使っただけでも相当な数(4096個)のディレクトリが作られ、その中に万単位でファイルが生成されることになり、千万、億単位のキャッシュが可能となるでしょう。
CacheDirLevels 2 CacheDirLength 1
なので、中小規模のシステムでは、このくらいで十分では。
メモ
ファイルシステムに応じて考慮するべき点がある。
ext3だと1つのディレクトリの中に作れるディレクトリ数の制約があるため、CacheDirLength 3
と設定をすると、64*64*64=262144個のディレクトリを作ろうとして、障害へと発展する可能性がある。
コメント