Top/Devel/PHP/Accelerator/PHPA

PHPAはてなブックマーク

php-accelerator-small.gif

PHPA (The ionCube PHP Accelerator)
一度呼び出されたコンパイル済みのPHPスクリプトをキャッシュして実行速度を上げるソフトウェア。
いわゆるアクセラレーター。

インストールが超簡単。
オフィシャルでは2〜10倍高速化すると書いてある。
Yahoo!でも使われているらしい。

インストール

インストール

tar zxvf php_accelerator-1.3.3r2_php-4.3.0_linux_i686-glibc2.1.3.tgz
cp php_accelerator-1.3.3r2_php-4.3.0_linux_i686-glibc2.1.3/php_accelerator_1.3.3r2.so /usr/local/lib

PHPにモジュールとして設定

vi /usr/local/lib/php.ini
; PHP Accelerator extension
zend_extension="/usr/local/lib/php_accelerator_1.3.3r2.so"
phpa.shm_user = apache
phpa.shm_group = apache
phpa.cache_dir = /var/cache/phpa

キャッシュディレクトリ作成 (apacheはapacheの実行ユーザー)

mkdir /var/cache/phpa
chown apache.apache /var/cache/phpa

Apacheの再起動

/etc/rc.d/init.d/httpd restart

Apache Benchによるテスト

Apacheに標準でついてくるベンチマークツールApache Bench(ab)で
テストしてみます。

/usr/local/apache2/bin/ab -n 100 -c 5 http://localhost/index.php

とすると、

同時接続5
1接続あたり100リクエスト

でテストします。
結果、
Requests per secondが
1.6 → 4.2
になりました。これは1秒間当たりの処理速度が2.6倍になったことを表します。
もっと重いスクリプトだったら差が分かるんではないでしょうか。
というかうちのサーバー貧弱だなあ。。。

ゴミ?

Apache2系な環境に組み込むと、error_logに

[Sun May 02 01:51:41 2004] [notice-phpa] Acquiring cache : uid 48 gid 48 perms 666 (pid 557)
[Sun May 02 01:51:41 2004] [notice-phpa] PHPA 1.3.3r2 on linux_i686_glibc2.1.3 (pid 557)
[Sun May 02 01:51:41 2004] [notice-phpa] Initialised 8MB cache at 0x40671000 with 512 process entries (pid 557)
[Sun May 02 01:51:41 2004] [notice-phpa] Lock thresholds 10/10 (pid 557)

ってなゴミが沢山。Apache1.3系では出ないみたい(?)詳しくは参考を参照のこと。

参考

Amazon

差分 一覧