Top/Devel/PHP/Accelerator/PHPA

PHPA の変更点はてなブックマーク


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

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

-[[オフィシャル>http://www.php-accelerator.co.uk]]

*インストール
インストール
 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>https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=97826]]
-[[PHPA Support Forums - PHPA Support Forum - constant PHPA warnings.>http://phpa.phorum.org/read.php?f=2&i=1037&t=1037]]

*Amazon
#amazon(479733245X,left)
#amazon(4844320254,left)
#amazon(4798119865,left)
差分 一覧