遅ればせながら、CACHEMANAGER.phpをこっちのサイトに適用してみた。

通常の状態(計測:23時頃)
だとか無印(index) 96q. AVR:0.064sec.(10)
ブログだとか(index) 90q. AVR:0.147sec.(10)
ブログだとか(alist) 91q. AVR:0.050sec.(10)

CACHEMANAGER導入後(計測:23時半頃)
だとか無印(index) 54q. AVR:0.178sec.(10)
ブログだとか(index) 53q. AVR:0.126sec.(10)
ブログだとか(alist) 50q. AVR:0.113sec.(10)

XREA+のMySQLサーバは、うちの場合は割りとマトモというか、SQLサーバ側のクエリキャッシュ(たぶんメモリキャッシュ)が効いてるようで、連続アクセスには強そうなかんじ。

それなのでCACHEMANAGERによるCache_Liteのファイルキャッシュだと逆に成績が落ちてしまうけど、それでも値としては悪くはない。 クエリ発行数は半減するので、DBが重くてパフォーマンスが出ない時間帯には活きるはず。このまま様子見します。

ファイルキャッシュで気になるのが、PHPのセーフモード下のキャッシュディレクトリ。 cache_([0-9a-f])/cache_$1[0-9a-f] の2階層分のディレクトリを掘るようなので、キャッシュディレクトリで次のようなPHPスクリプトをCGIモードで走らせて、あらかじめ下位の階層を用意しておくことにした。chmodはいらなかったかも。

$arr = array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f');
for ($i=0; $i<count($arr); $i++) {
    $file = 'cache_' . $arr[$i];
    mkdir($file, 0707);
    chmod($file, 0707);
    for ($j=0; $j<count($arr); $j++) {
        $file2 = $file . '/cache_' . $arr[$i] . $arr[$j];
        mkdir($file2, 0707);
        chmod($file2, 0707);
    }
}