SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【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で指定したディレクトリの中に、キャッシュがファイルとして生成される。

通常はキャッシュのためのディレクトリの中にさらにディレクトリわけをしてディレクトリわけをしてファイルをしまう。下図はそのディレクトリの様子。

mod_disk_cache

ディレクトリ名には、以下の64文字が使用されている。

0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz

64文字も使用できる文字があるということは、以下の設定でディレクトリ名に2文字使っただけでも相当な数(4096個)のディレクトリが作られ、その中に万単位でファイルが生成されることになり、千万、億単位のキャッシュが可能となるでしょう。

CacheDirLevels 2
CacheDirLength 1

なので、中小規模のシステムでは、このくらいで十分では。

メモ

ファイルシステムに応じて考慮するべき点がある。

ext3だと1つのディレクトリの中に作れるディレクトリ数の制約があるため、CacheDirLength 3 と設定をすると、64*64*64=262144個のディレクトリを作ろうとして、障害へと発展する可能性がある。

関連するメモ

コメント