xCache を使ってみる(Windows版でも使えるアクセラレーター)
PHPでのWebシステム運用で必須ともいえるアクセラレーターですが。(そもそもPHPアクセラレーターって何よッ!?って方はコチラ
の記事が参考になると思われます)
有名どころでは、 APC や eAccelerator がありますが、Windows版のPHPへの対応状況があまりよろしくないようです。
そこで色々と探したところ xCache がWindows版のPHP5.3にも対応しており、Windows + Apche + PHP5.3 なんて要件にも対応できるステキ・モジュールでした。
まずはダウンロード
まずはxCacheのサイトからWindows用にコンパイルされた最新版のモジュールをダウンロードしてきます。
ダウンロードは、、、
http://xcache.lighttpd.net/pub/Releases/1.3.0/
にアクセスします。
色々あって、「むむむむ・・・」ですが、自分の環境にあったzipファイルをファイル名のパターンで選びます。
ファイル名の「XCache-1.3.0」がxCacheのバージョンです。これは最新の1.3.0しかありません。ので割愛。
つぎに「php-9.9.9」とあり、これは対応するPHPのバージョンです。自分の環境のPHPのバージョンにあわせます。
つぎに「nts」と「win32」があります。「nts」は「None Thread Safe」の略でPHPをCGIとして使っている場合にはこちらを。「win32」はPHPをモジュールとして使っている場合はこちらを選びます。
最後に「VC6」と「VC9」がありますが、こちらは使っているWebサーバーによって、VC6=Apache、VC9=IISとなります。
(実際にはインストールされているPHPにあわせて選択します。PHPの選択についてはこちらの記事 もあわせてご覧ください)
以上の4(3?)パターンから選んだファイル名のzipファイルをダウンロードしておきます。
インストール&設定してみる
ダウンロードが終わったらzipファイルを解凍します。
そこに php_xcache.dll ファイルがありますので、これをPHPのインストールされたフォルダ(例えば C:\PHP)にあるextフォルダ(例えば2 C:\PHP\ext)のなかにコピーします。
php_xcache.dll と同じフォルダにある xcache.ini に記述されている内容を php.ini にコピペします。
[xcache-common] セクションの extension 指定子を自分の環境にあわせて書き換えます。
(extension_dirを適当に設定しているなら extension=php_xcache.dell でおk)
最後にWebサーバーを再起動します!!
ベンチマークを取ってみる
んでは、xCache適用前と後でどれくらいの変化があったのかベンチマークを取ってみます。
検証したPCのスペックは以下のとおり。
CPU:Intel Pentium Dual CPU E2140 1.6GHz
メモリ:2GB
OS:Windows VISTA Pro
Apache 2.0.63
PHP 5.3.2(PHPはモジュールで使ってます)
検証に使ったアプリケーションは、pukiwiki のバージョン 1.4.7 。
また、検証方法として、Apacheのabを使って「ab -n 1000 -c 10 http://localhost/wiki/」として、適用前と後で10回づつ測定。
「Request per second」値の最小値および最大値を省いた値の平均値を比較してみました。
・xCache 適用前
平均 Request per second 値:18.20
・xCache 適用後
平均 Request per second 値:27.92
ということで適用前と後で約 1.5 倍くらい性能が向上しています。
今回は検証にpukiwikiを使いこのような結果になりましたが、インクルードしているファイルの数などなど、プログラムの構成で得られる効果が異なるようですので、実際に導入するさいには必ず検証が必要ですね。
有名どころでは、 APC や eAccelerator がありますが、Windows版のPHPへの対応状況があまりよろしくないようです。
そこで色々と探したところ xCache がWindows版のPHP5.3にも対応しており、Windows + Apche + PHP5.3 なんて要件にも対応できるステキ・モジュールでした。
まずはダウンロード
まずはxCacheのサイトからWindows用にコンパイルされた最新版のモジュールをダウンロードしてきます。
ダウンロードは、、、
http://xcache.lighttpd.net/pub/Releases/1.3.0/
にアクセスします。
色々あって、「むむむむ・・・」ですが、自分の環境にあったzipファイルをファイル名のパターンで選びます。
ファイル名の「XCache-1.3.0」がxCacheのバージョンです。これは最新の1.3.0しかありません。ので割愛。
つぎに「php-9.9.9」とあり、これは対応するPHPのバージョンです。自分の環境のPHPのバージョンにあわせます。
つぎに「nts」と「win32」があります。「nts」は「None Thread Safe」の略でPHPをCGIとして使っている場合にはこちらを。「win32」はPHPをモジュールとして使っている場合はこちらを選びます。
最後に「VC6」と「VC9」がありますが、こちらは使っているWebサーバーによって、VC6=Apache、VC9=IISとなります。
(実際にはインストールされているPHPにあわせて選択します。PHPの選択についてはこちらの記事 もあわせてご覧ください)
以上の4(3?)パターンから選んだファイル名のzipファイルをダウンロードしておきます。
インストール&設定してみる
ダウンロードが終わったらzipファイルを解凍します。
そこに php_xcache.dll ファイルがありますので、これをPHPのインストールされたフォルダ(例えば C:\PHP)にあるextフォルダ(例えば2 C:\PHP\ext)のなかにコピーします。
php_xcache.dll と同じフォルダにある xcache.ini に記述されている内容を php.ini にコピペします。
[xcache-common] セクションの extension 指定子を自分の環境にあわせて書き換えます。
(extension_dirを適当に設定しているなら extension=php_xcache.dell でおk)
最後にWebサーバーを再起動します!!
ベンチマークを取ってみる
んでは、xCache適用前と後でどれくらいの変化があったのかベンチマークを取ってみます。
検証したPCのスペックは以下のとおり。
CPU:Intel Pentium Dual CPU E2140 1.6GHz
メモリ:2GB
OS:Windows VISTA Pro
Apache 2.0.63
PHP 5.3.2(PHPはモジュールで使ってます)
検証に使ったアプリケーションは、pukiwiki のバージョン 1.4.7 。
また、検証方法として、Apacheのabを使って「ab -n 1000 -c 10 http://localhost/wiki/」として、適用前と後で10回づつ測定。
「Request per second」値の最小値および最大値を省いた値の平均値を比較してみました。
・xCache 適用前
1回目 | 18.13 |
2回目 | 18.22 |
3回目 | 18.20 |
4回目 | 18.29 |
5回目 | 18.22 |
6回目 | 18.20 |
7回目 | 18.18 |
8回目 | 18.26 |
9回目 | 18.20 |
10回目 | 18.18 |
・xCache 適用後
1回目 | 27.70 |
2回目 | 27.82 |
3回目 | 27.77 |
4回目 | 28.05 |
5回目 | 27.69 |
6回目 | 28.00 |
7回目 | 27.90 |
8回目 | 28.08 |
9回目 | 28.07 |
10回目 | 28.18 |
ということで適用前と後で約 1.5 倍くらい性能が向上しています。
今回は検証にpukiwikiを使いこのような結果になりましたが、インクルードしているファイルの数などなど、プログラムの構成で得られる効果が異なるようですので、実際に導入するさいには必ず検証が必要ですね。