GeekBox

新米Webエンジニアのメモ帳

さくらVPSにAPCを入れてみた

2015/04/30

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を変更するだけ)。

-PHP
-,