今回はPHPアクセラレータであるAPCuとOPcacheのご紹介です。
これらはPHPでコンパイルされたデータをキャッシュしてくれます、1度キャッシュしたものは2回目はキャッシュから読み込むのでコンパイル処理が省かれ、PHP処理が高速になります。
キャッシュ対象
- APCu・・・データキャッシュ
- OPcache・・・コードキャッシュ
この記事の対象
PHP5.5以上の環境
EPELリポジトリのインストール
CentOS7の場合
1 |
# yum install epel-release |
CentOS6の場合
1 |
# rpm -ivh http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm |
APCu, OPcacheインストール
1 |
# yum install --enablerepo=epel php-opcache php-pecl-apcu |
OPcahceの設定を行います。
キャッシュしてくれる最大サイズの変更
1 2 3 4 5 6 7 8 |
# vi /etc/php.d/10-opcache.ini opcache.memory_consumption=128 ↓変更 ;opcache.memory_consumption=128 opcache.memory_consumption=256 |
コードに変更があった場合はキャッシュを使わないようにデフォルトで設定されています。
APCuの設定を行います。
キャッシュしてくれる最大サイズと、キャッシュの有効期間を設定
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# vi /etc/php.d/40-apcu.ini ;apc.shm_size=32M apc.shm_size=128M ←追記 ;apc.ttl=0 apc.ttl=86400 ;apc.gc_ttl=3600 apc.gc_ttl=86400 |
また、WEBサーバを再起動し設定を有効化させましょう。
※アプリケーション側でAPCuを使うように設定する必要があります。
設定状況を確認できます。
1 |
# php -i | egrep 'apc|opcache' |
GUIでキャッシュ状況を確認しよう
APCu コントロールパネル
GitHubからダウンロードしよう。
1 |
# wget https://github.com/krakjoe/apcu/archive/master.zip |
解凍します。
1 |
# unzip master.zip |
1 |
# rm -f master.zip |
ユーザ認証に必要な情報を設定しましょう。
1 2 3 4 5 6 7 8 9 |
# vi apcu-master/apc.php defaults('ADMIN_USERNAME','apc'); // Admin Username defaults('ADMIN_PASSWORD','password'); // Admin Password - CHANGE THIS TO ENABLE!!! ↓変更 defaults('ADMIN_USERNAME','ユーザ名'); // Admin Username defaults('ADMIN_PASSWORD','パスワード'); // Admin Password - CHANGE THIS TO ENABLE!!! |
WEB上から確認できます。
http://ホスト名/apcu-master/apc.php
【User Cache Entries】をクリックすると実際にキャッシュとして格納されているオブジェクトが見れますよ!
OPcacheコントロールパネル Opcache Control Panel
https://gist.github.com/ck-on/4959032
貼り付ける
1 2 3 |
# vi ocp.php GitHubからコードを貼り付けよう。 |
WEB上から確認できます。
http://ホスト名/ocp.php
環境にもよりますが、0.5秒程度変わってきたりと導入はおすすめです。