APC:(Alternative PHP Cache)
最近職場で導入する機会があり、ついでにVPSのPHPバージョンを見てみたところ5.3.3だったので導入してみる。 本当はPHPのバージョン上げてOPcacheの設定をするのが正しい気がするけど、とりあえずどんくらい早くなるのか実験。 職場ではVMに乗ってるミドルウェアもろもろのバージョンが古かったりyum自体のアップデートすら出来なかったりで難航したけど、VPSではかなりすんなり導入できたしAPC導入の方法はググったらすぐ出てくるので割愛。 Apache Benchはこんな感じで実行
ab -n100 -c10 http://at-tgr.info/wordpress/index.php
APC導入前
Time taken for tests | 33.682 seconds |
Complete requests | 100 |
Requests per second | 2.97 [#/sec] |
APC導入後
Time taken for test | 12.950 seconds |
Complete requests | 100 |
Requests per second | 7.72 [#/sec] |
二回目
APCは一回目でキャッシュするので二度目以降が本気って事だと思うので二回目
Time taken for tests | 6.339 seconds |
Complete requests | 100 |
Requests per second | 15.78 [#/sec] |
5倍くらい早くなってる・・・ APCの設定としては「apc.shm_size」を64Mに変更しただけ。 公式の説明を見ても他はデフォルトでよさそう。
APCの仕組みとtipsを少しメモ
PHPのスクリプトを最適化してコンパイルした状態でキャッシュしておく、以降同じデータにアクセスした時キャッシュを利用する事によって処理速度の向上とCPU負荷の軽減を行う。 「shm_size」はキャッシュを貯めておく共有メモリの上限値の設定なので低すぎると溢れた時に全部消去される。 それではあまり意味が無いためある程度の容量を予想して設定(デフォルトは30MB)しとけば良いっぽい。
導入後と設定変更後は必ずapacheをrestartさせないと設定が反映されない。
APCインストール後以下ディレクトリにapc.phpが作成される。 /usr/share/pear 適当なディレクトリに配置してアクセスすると管理ツールが使える(ログイン機能を使用するにはdefineを変更するだけ)。