PHP アクセラレータ APC を導入して、WordPress が高速化することは分かりました。より詳細にキャッシュのステータスを見るために、apc.php を使ってみます。また WordPress 関連のファイルで何が頻繁にヒットしているのかも調べてみます。

動作環境

  • CentOS 5.3
  • PHP 5
  • APC 3.0.19
  • WordPress 2.6.1
  • Ktai Style 1.71

apc.php は APC のインストール時に入っている

APC を動かすだけなら前回の手順だけで OK ですが、実際キャッシュのヒット率やメモリの使用状況がどれくらいなのかを知る apc.php を使ってみます。

まずグラフを表示するために GD を入れます。

[code]
# yum -y install php-gd
[/code]

CentOS 5.3 では /usr/share/pear/apc.php にインストールされています。apache から参照可能にしておく必要があります。場所はどこでも良いですが、DocumentRoot 以下のどこかからシンボリックリンクを張るのが手っ取り早いでしょう。

[code]
# cd /var/www ←必要に応じて変更
# ln -s /usr/share/pear/apc.php .
[/code]

とでもしておき、apc.php 冒頭の以下の部分にユーザ名、パスワードがあるので自分の好きなものに変更します。”password” のままではログインできません。

[code language=”php”]
defaults(‘ADMIN_USERNAME’,’apc’); // Admin Username
defaults(‘ADMIN_PASSWORD’,’password’);
[/code]

では半日ほど稼働しっぱなしにしておき、http://…../apc.php にアクセスし統計データを見てみましょう。

デフォルトの 30MB でヒット率はほぼ 100%

まずはパスワードなしで見られる統計データ View Host Stats です。

apc.php: View Host Stats

デフォルトで 30MB 程度のメモリが割り当てられていましたが、これでも PHP キャッシュのヒット率はほぼ 100% です。わずかにミスしているので、apc.ini の設定でもう少し増やした方が良いかもしれません。

[code]
apc.shm_size = 64
[/code]

wp-cache 系の PHP コードがヒットしまくっている

次にユーザ名、パスワードの必要な System Cache Entries です。ここでは、具体的にどんな PHP ファイルがヒット数が多いのか (頻繁にアクセスされているのか) が分かります。

APC: System Cache Entries

ヒット数上位 7つは何かというと、

wp-cache.php, wp-cache-base.php wp-cache の一部
patch-wpcache.php Ktai Style の wp-cache 用パッチ
wp-settings.php (WordPress 本体) グローバル変数を定義
wp-load.php (WordPress 本体) グローバル変数を定義
wp-cache-phase1.php wp-cache の一部
wp-config.php (WordPress 本体) グローバル変数を定義

WordPress 本体で共通に参照されるグローバル変数系が多いのは、言われてみればそうだよなというところですが、それよりも多いのが wp-cache がらみ。そこに当てた Ktai Style のパッチ用ファイルも wp-cache.php, wp-cache-base.php と同数だけ呼ばれています。

wp-cache + APC を併用しても一見効果が無さそうに見えて、wp-cache 単体よりも速いのは、この辺に理由があるようですね。