PHPA
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系では出ないみたい(?)詳しくは参考を参照のこと。
参考
- Bug 97826 - httpd-2.0.45 segfault after SIGHUP
- PHPA Support Forums - PHPA Support Forum - constant PHPA warnings.