ホームページ >バックエンド開発 >PHPチュートリアル >PHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル
他の場所から見た。
プログラム環境が Zend Optimizer を必要としない場合は、pecl-APC が推奨されます (Zend Optimizer と互換性がありません)。
概要:
1. Pecl-APC は、優れた互換性とパフォーマンスを備えた PHP バッファリング (高速化) の第一の選択肢です。2. PHP 環境で Zend Optimizer が必要な場合は、eAccelerator をインストールし、Zend Optimizer の圧縮レベルを 0 に調整します。
zend オプティマイザーは、PHP コードを調整できるコード最適化モジュールです。実装の原理は、ランタイム コンパイラー (Run-Time Compiler) によって生成されたコードを、最終的に実行される前に最適化することです。コードのパフォーマンスは 40% から 100% 向上する可能性があります。この観点から見ると、強力なキャッシュ機能は必要ありません。ソース コードを読んでいないので、キャッシュがあるかどうか、キャッシュが何であるかはわかりません。品質は。
APC は原理的には eAccelerator と似ているため、大きな違いはありません。パラメータを変更して詳細にテストしないと、2 つの利点と欠点はわかりません。それで、一つだけ選んでください。
3 つの無料 PHP アクセラレータ: APC、eAccelerator、XCache の比較
1. PHP アクセラレーターの紹介
PHPアクセラレータは、PHPの実行効率を向上させるためにPHPをキャッシュする動作コードです。これにより、PHPの実行は変換を解析する必要がなく、PHPの動作コードを直接呼び出すことができるため、速度が向上します。多く。 Apache の mod_php を使用したリクエストとレスポンスの実行処理:
1. Apacheがリクエストを受け取ります。
2. Apache はリクエストを mod_php に渡します。3. mod_php はディスク ファイルを見つけてメモリにロードします。
4. mod_php はソースコードをオペコードツリーにコンパイルします。5. mod_php はオペコード ツリーを実行します。
PHP アクセラレータは 4 番目のステップに相当します。その目的は、アクセスの多い Web サイトでは、多くのコンパイルの実行速度が遅いため、PHP がリクエストのたびに PHP コードを繰り返しコンパイルすることを防ぐことです。したがって、ここにはボトルネックがあり、PHP のコンパイルを繰り返すと速度とサーバー負荷の両方に影響が出るということです。この問題を解決するために、PHP アクセラレータが誕生しました。
2. PHP アクセラレーターのインストールと構成
1. APC をインストールして設定します
APC の正式名称は Alternative PHP Cache で、PHP PECL では拡張機能として使われているようです(ubuntu 環境):
$wget http://pecl .php.net/get/APC-3.0.19.tgz$tar xvzf APC-3.0.19.tgz$cd APC-3.0.19/APC-3.0.19$/usr/local /php/bin/ phpize
$./configure –enable-apc –enable-apc-mmap –with-php-config=/usr/local/php/bin/php-config$make
$sudo make install
次に、APC を構成します。PECL 拡張パスが変更されたため、コンパイルされたファイルを移動する必要があります:
$sudo mv /usr/local/php/lib/php/extensions/no-debug-non-zts -20060613/apc .so /usr/local/php/lib/php/extensions/PECL
次に、php.ini ファイルを編集して、php.ini に次のコードを追加します。
extension_dir = "/usr/local/php/lib/php/extensions/PECL"
;
apc.enabled = 1
apc.shm_size = 64
apc.optimization = 1
apc.num_files_hint = 0
apc.ttl = 0
apc.gc_ttl = 3600
apc.PHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル_ by_default =on
このように、phpinfo()の情報にApacheの再起動が表示されるようになります。
2. eAccelerator をインストールして構成します
実際、eAccelerator の前身は、truk-mmPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル です。 truk-mmPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル の開発者は Zend に採用されたため、eAccelerator の開発者は、truk-mmPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル の機能の一部を継承して、eAccelerator アクセラレータを設計しました。次のようにインストールします:
$wget http://jaist.dl.sourceforge.net/sourceforge/eaccelerator/eaccelerator-0.9.5.tar.bz2
$tar -jxf eaccelerator-0.9.5.tar.bz2
$cd eaccelerator - 0.9.5
$/usr/local/php/bin/phpize
$./configure –enable-eaccelerator=shared –with-php-config=/usr/local/php/bin/php-config
$make
$ sudo make install
$sudo mv /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so /usr/local/php/lib/php/extensions/PECL
次のコードを php.ini ファイルに追加します
extension = eaccelerator.so
; eAccelerator
eaccelerator.shm_size = "16"
eaccelerator.PHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル_dir = "/tmp/eaccelerator"
eaccelerator.enable = "1"
eaccelerator。 optimizer = "1"
eaccelerator.check_mtime = "1"
eaccelerator.debug = "0"
eaccelerator.filter = ""
eaccelerator.shm_max = "0"
eaccelerator.shm_ttl = "0"
eaccelerator.prune_period = " 0 "
eaccelerator.shm_only = "0"
eaccelerator.compress = "1"
eaccelerator.compress_level = "9"
キャッシュディレクトリを作成し、Apacheを再起動します
$sudo mkdir /tmp/eaccelerator
$sudo chmod 777 /tmp/eaccelerator
$sudo /usr/local/apache/apachectl restart
phpinfo()でインストールが成功したか確認してください。
3. XCache をインストールして設定する
XCache は中国人によって開発されたもので、初心者の私でも速度とパフォーマンスの点で非常に優れていると誇りに思っています。さっそく味わってみましょう!
$wget http://xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル.lighttpd.net/pub/Releases/1.2.2/xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル-1.2.2.tar.gz
$tar xvzf xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル-1.2.2.tar.gz
$cd xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル-1.2。 2
$/usr/local/php/bin/phpize
$./configure –enable-xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル –enable-xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル-coverager –with-php-config=/usr/local/php/php-config
$make
$ sudo make install
$sudo mv /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル.so /usr/local/php/lib/php/extensions/PECL
php.iniに構成情報を追加します:
拡張子 = xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル.so
;
xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル.size = 24M
xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル.shm_scheme = "mmap"
xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル.count = 2
xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル.slots = 8k
xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル.ttl = 0
xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル.gc_interval = 0
xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル.var_size = 8M
xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル.var_count = 1
xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル.var_ttl = 0
xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル.var_maxttl = 0
xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル.var_gc_interval = 300
xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル.test = オフPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル.readonly_protect イオン = オン
xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル .mmap_path = "/tmp/xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル"
xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル.coredump_directory = ""
xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル.PHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアルr = On
xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル.stat = On
xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル.optimizer = Off
;
xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル.coverager = On
xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル.coveragedump_directory = ""
キャッシュディレクトリを作成し、Apacheを再起動します
$sudo mkdir /tmp/xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル
$sudo /usr/local/apache/bin/apachectl restart
phpinfo() 情報を確認してください!
3. PHPアクセラレータテスト
1. テスト環境
ハードウェア: AMD Athlon 64 X2 デュアルコア プロセッサ 4400+ @ 2.2GHz CPU、2GB RAM 160GB SATA ハードドライブ
。ソフトウェア: Linux UbuntuサーバーGutsy 7.10、Apache 2.2.4、MySQL 5.0.45、およびPHP 5.2.3
テストコマンド: ab -c5 -n3000 http://example.com/ (Apache Benchmark (ab) ツールを使用しています。同時接続は 5, 3000 リクエストです)
2. テスト結果
アクセルなし:
ドキュメントパス: /
ドキュメントの長さ: 21757 バイト同時実行レベル: 5
テストにかかった時間: 288.255212 秒完了したリクエスト: 3000
失敗したリクエスト: 0
書き込みエラー: 0
合計転送数: 66777000 バイト
転送された HTML : 6527 1000バイト
1 秒あたりのリクエスト数: 10.41 [#/秒] (平均)
リクエストあたりの時間: 480.425 [ms] (平均)
リクエストあたりの時間: 96.085 [ms] (すべての同時リクエストの平均)
転送速度: 226.23 [ kbytes/sec]受信
コネクション時間(ms)
min平均[+/- sd]中央値max
connect:0 0 0.5 019
processing:181 479 186.0 4441822
waiting:166 461 184.7 4271708
total:18 1 479 186.0 444 1822
一定時間内に処理されたリクエストの割合(ミリ秒)
50% 444
66% 525
75% 577
80% 619
90% 732
95% 819
98% 946
99 %1 012
100% 1822 (最長リクエスト)
APC アクセラレータ:
ドキュメントパス:/
ドキュメントの長さ:21757バイト
同時実行レベル:5
テストにかかった時間:98.530068秒
完了したリクエスト:3000
失敗したリクエスト:0
書き込みエラー:0
合計転送数:66777000バイト
転送されたHTML:6527100 0バイト
1 秒あたりのリクエスト数: 30.45 [#/秒] (平均)
リクエストあたりの時間: 164.217 [ms] (平均)
リクエストあたりの時間: 32.843 [ms] (すべての同時リクエストの平均)
転送速度: 661.84 [ Kバイト/秒]受信
接続時間(ミリ秒)
最小平均[+/-SD]中央値最大
接続: 0 0 0.0 0 2
処理中: 58 163 71.2 155 2452
待機中: 53 158 69.6 150 2329
合計: 58 163 71.2 155 2452
一定時間内に処理されたリクエストの割合(ミリ秒)
50% 155
66% 178
75% 193
80% 204
90% 235
95% 258
98% 285
99% 3 02
100% 2452 (最長リクエスト)
eAccelerator加速器:
ドキュメントパス:/
ドキュメントの長さ:21757バイト
同時実行レベル:5
テストにかかった時間:95.983986秒
完了したリクエスト:3000
失敗したリクエスト:0
書き込みエラー:0
合計転送数:66777000バイト
転送されたHTML:6527100 0バイト
1 秒あたりのリクエスト数: 31.26 [#/秒] (平均)
リクエストあたりの時間: 159.973 [ms] (平均)
リクエストあたりの時間: 31.995 [ms] (すべての同時リクエストの平均)
転送速度: 679.39 [ Kバイト/秒]受信
接続時間(ミリ秒)
最小平均[+/-SD]中央値最大
接続: 0 0 0.1 0 3
処理中: 57 159 91.3 148 3830
待機中: 50 152 89.8 142 3704
合計: 57 159 91.3 148 3830
一定時間内に処理されたリクエストの割合(ミリ秒)
50% 148
66% 174
75% 193
80% 205
90% 239
95% 263
98% 289
99% 3 09
100% 3830 (最長リクエスト)
XCache加速器:
document Path: /DocumentLength:21757 Bytesconcurrencyレベル:テストのために撮影される5秒:99.76300秒incompleteリクエスト:3000sfailedリクエスト:0
writeエラー:0 attotal転送:667777000bytes
html転送:65271000バイト
1 秒あたりのリクエスト数: 30.28 [#/秒] (平均)
リクエストあたりの時間: 165.127 [ms] (平均)
リクエストあたりの時間: 33.025 [ms] (すべての同時リクエストの平均)
転送速度: 658.19 [ Kバイト/秒]受信
接続時間(ミリ秒)
最小平均[+/-SD]中央値最大
接続: 0 0 0.0 0 2
処理中: 59 164 83.4 155 3367
待機中: 52 156 66.4 148 1802
合計: 59 164 83.4 155 3367
一定時間内に処理されたリクエストの割合(ms)
50% 155
66% 178
75% 196
80% 206
90% 237
95% 263
98% 287
99% 3 05
100% 3367 (最長リクエスト)
3、結果摘要
要求時間(秒)
最大内存占用(MB) | 最小内部保存占用(MB) | なし | 10.41 | |
24 | 24 | APC | 30.45 | |
21 | 21 | eアクセラレータ | 31.26 | |
23 | 18 | Xキャッシュ | 30.28 | |
29 | 19 |
4. PHPアクセラレータの比較結果のまとめ 1. テストを通じて、リクエスト時間とメモリ使用量の点で eAccelerator が最適であると結論付けられました。 2. テストを通じて、アクセラレータを使用した場合、アクセラレータを使用しない場合に比べてリクエスト時間が約 3 倍速くなることが判明しました。 3. さまざまな公式観察によると、XCache は最も速く更新されており、これは最も開発が進んでいることも示しています。 上記は要約結果です。どのアクセラレーターが優れているか尋ねるかもしれません。まず言えることは、まず、使用しないよりは使用した方が良いということです。次に、各アクセラレータには調整できるパラメータがあるので、それはシステム環境に依存します。それから、個人的には勉強することができると思います。 eAccelerator と XCache の詳細については、これら 2 つのモデルにはまだ大きな可能性があります。最後に、より専門的なテスト Web サイトから結果の画像を作成しました。
元のリンクアドレス: http://www.vpser.net/opt/apc-eaccelerator-xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル.html |