連載
» 2016年01月25日 05時00分 公開

とにかく速いWordPress(2):WordPressを2.5倍速くするPHPアクセラレータ「APC」 (4/4)

[中村けん牛,プライム・ストラテジー]
前のページへ 1|2|3|4       

PHPアクセラレータ「APC」を導入する

 デフォルト環境でのパフォーマンス測定が終わりましたので、高速化のチューニングを進めていきましょう。最初にPHPアクセラレータである「APC」を導入します。

 導入の前に、PHPの実行プロセスを簡単に説明しておきます。PHPの実行プロセスは2段階で行われます。第一ステップとして、最初に人間が記述したPHPのソースコードを構文解析して中間コード(バイトコード)に変換します。第二ステップとして、変換された中間コードをPHP仮想マシンである「Zend Engine」が実行します。

photo JSP、PHPの実行されるまでの流れ


 PHPアクセラレータは、この第一ステップで生成された中間コードをキャッシュして、二度目からキャッシュされた中間コードを再利用します。該当するPHPのソースコードに変更が加えられていなければ、第一ステップを省略することでPHPの実行速度を向上させるPHPのモジュールです。PHPのソースコードに変更が加えられていた場合はキャッシュされた中間コードは破棄されますので、PHPアクセラレータの有無によってPHPの出力結果が変わることはありません。

 PHPアクセラレータには幾つかの種類がありますが、今回は、比較的簡単に導入でき、実績も豊富なAPCを導入することにします。

 まず、APCのインストールに必要なモジュールをyumでインストールします。

[root@ip www]# yum install php-devel php-pear gcc -y

 次に、peclコマンドでAPCをインストールします。ウィザード形式でのインストールになりますが、全てEnterで進めてください。

[root@ip-172-30-1-150 www]# pecl install apc

 gccによるコンパイルが完了すると、「apc.so」ファイルが生成されます。これがAPCの本体になります。次の内容を/etc/php.d/apc.iniとして保存してください。

extension = apc.so
apc.shm_size = 128M
apc.enable_cli = 1
;apc.filters = filename
[リスト /etc/php.d/apc.ini ]

 「apc.shm_size」は共有メモリとして利用するメモリサイズ、「apc.enble_cli」はCLI(Command Line Interface)版のPHPでもAPCを有効にするか否かの設定です。「;」でコメントアウトしてある「apc.filters」はAPCによる中間コードのキャッシュを除外するファイル名です。もしキャッシュによって問題が起きる場合は、ここへ除外するファイル名の一部を記述します。通常は不要です。

 保存が終わりましたら、Apacheを再起動して変更を反映させます。

[root@ip www]# systemctl restart httpd

 ブラウザに戻り、トップページをリロードしてください。初回のみ少し時間がかかりますが、2度目以降のリロードではページのロード時間が速くなっていることが確認できます。筆者の環境では、およそ70ms前後になりました。前述したデフォルト環境では176msでした。

 続いてabコマンドで先ほどと同様のベンチマークを取ってみます。

[root@ip www]# ab -n 100 -c 10 http://ec2-xxx.xxx.compute.amazonaws.com/

 筆者の環境では、Requests per secondが29.20となりました。まとめると以下になります。

APC導入後のパフォーマンス比較 ページのロード時間 1秒当たりの同時アクセス数
デフォルト環境 176ms 11.24
APC導入後 70ms(約251%) 29.20

 APCの導入で、約2.5倍のパフォーマンス向上を果たせました。



 次回は、今回の続きとして、CentOS 7の標準のリポジトリを利用する範囲で可能なAPC以外の高速化テクニックを解説します。お楽しみに。

筆者紹介

中村けん牛

1971年栃木県生まれ。中学1年生で電波新聞社の『マイコンBASICマガジン』にプログラムを寄稿して以来、プログラミング歴30年。早稲田大学法学部を卒業後、野村證券に入社。公認会計士第二次試験合格。2002年にプライム・ストラテジー株式会社を設立、代表取締役に就任する。2005年にPT. Prime Strategy Indonesiaを設立して以来、アジアでのITビジネスに携わる。執筆監訳書籍に『WordPressの教科書』シリーズ(SBクリエイティブ)、『詳解 WordPress』『WordPressによるWebアプリケーション開発』(ともにオライリー・ジャパン)などがある。


前のページへ 1|2|3|4       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。