PHP アクセラレーション eAccelerator、Xcache、APC および Zend Optimizer、eacceleratorxcache について

WBOY
リリース: 2016-06-16 09:16:40
オリジナル
741 人が閲覧しました

PHP アクセラレータ eAccelerator について、インタビューで PHP アクセラレータ/キャッシュをいくつ知っていますかという質問がありましたが、私が驚いたのは、PHP5.2.x では Zend Optimizer しか使用されておらず、暗号化された PHP プログラムは以下の環境でのみ実行できることを知っていたからです。ゼンドオプティマイザー。ただし、Zend Optimizer は php5.3.x 以降をサポートできず、ましてや eAccelerator、Xcache、APC もサポートできません。 Zend ガードローダーは php5.3.x 以降と最新の php5.5.x バージョンをサポートしており、公式 Web サイトには Zend ガードが組み込まれているため、phper はアクセラレータを意識する必要はないと記載されています。このような問題に遭遇したので、ネット民はそれを読むだけでよく、テストする必要はありません。

どれをインストールしますか?パフォーマンスにどのような影響がありますか?時間をかけてテストしてみましょう。

他の場所から見た。

プログラム環境が 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% 向上する可能性があります。この観点から見ると、強力なキャッシュ機能は必要ありません。ソース コードを読んでいないので、キャッシュがあるかどうか、キャッシュが何であるかはわかりません。品質は。

eAccelerator は、コンパイルされた PHP コードを共有メモリにキャッシュするモジュールです。共有メモリにアクセスすることで、コンパイルされたコードを直接取得して実行できるため、PHPの実行効率が大幅に向上します。同時に、eAccelerator はデータをファイルにキャッシュすることもできます。この部分はファイルに対する操作であるため、ほとんどのファイル キャッシュの原理とパフォーマンスは同様であると思います。


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

次に、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"
extension = apc.so

; APC

apc.enabled = 1
apc.shm_segments = 1
apc.shm_size = 64
apc.optimization = 1
apc.num_files_hint = 0
apc.ttl = 0
apc.gc_ttl = 3600
apc.cache_by_default = on

このようにして、phpinfo()の情報にApacheの再起動が表示されるようになります。

2. eAccelerator をインストールして構成します

eAccelerator の前身は、実際には、truk-mmcache です。 truk-mmcache の開発者は Zend に採用されたため、eAccelerator の開発者は、truk-mmcache の機能の一部を継承して、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.cache_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://xcache.lighttpd.net/pub/Releases/1.2.2/xcache-1.2.2.tar.gz
$tar xvzf xcache-1.2.2.tar.gz
$cd xcache-1.2.2
$/usr/local/php/bin/phpize
$./configure –enable-xcache –enable-xcache-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/xcache.so / usr/local/php/lib/php/extensions/PECL

php.ini に構成情報を追加します:

拡張子 = xcache.so
; xcache
xcache.admin.user = "admin"
xcache.admin.pass = "(実行) echo '(パスワード)'|md5sum( ciphertext) "
;
xcache.size = 24M
xcache.shm_scheme = "mmap"
xcache.count = 2
xcache.slots = 8k
xcache.ttl = 0
xcache.gc_interval = 0

xcache.var_size = 8M
xcache.var_count = 1
xcache.var_slots = 8k
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
xcache.test = オフ
xcache.readonly_protection = オン
xcache.mmap_path = "/tmp/xcache"
xcache.coredump_directory = ""
xcache.cacher = オン
xcache.stat = オン
xcache.optimizer = オフ
;
xcache.coverager = オン
xcache.coveragedump_directory = ""

キャッシュディレクトリを作成し、Apacheを再起動します

$sudo mkdir /tmp/xcache
$sudo chmod 777 /tmp/xcache
$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: 65271000 バイト
1 秒あたりのリクエスト数: 10.41 [#/秒] (平均)
リクエストあたりの時間: 480.425 [ms] (平均)
リクエストあたりの時間: 96.085 [ms] (すべての同時リクエストの平均)
転送速度: 226.23 [Kbytes/sec] 受信
接続時間 (ms)
最小平均[+/-sd]中央値最大
接続: 0 0 0.5 0 19
処理中: 181 479 186.0 444 1822
待機中: 166 461 184.7 427 1708
合計: 181 479 186.0 444 1822
処理されたリクエストの割合一定時間内 (ミリ秒)
50% 444
66% 525
75% 577
80% 619
90% 732
95% 819
98% 946
99% 1012
100% 1822 (最長リクエスト)

APC アクセラレータ:

ドキュメント パス: /
ドキュメントの長さ: 21757 バイト
同時実行レベル: 5
テストにかかった時間: 98.530068 秒
完了したリクエスト: 3000
失敗したリクエスト: 0
書き込みエラー: 0
合計転送数: 66777000 バイト
転送された HTML: 65271000 バイト
1 秒あたりのリクエスト数: 30.45 [#/秒] (平均)
リクエストあたりの時間: 164.217 [ms] (平均)
リクエストあたりの時間: 32.843 [ms] (すべての同時リクエストの平均)
転送速度: 661.84 [Kbytes/sec] 受信
接続時間 (ms)
最小平均[+/-sd]最大中央値
接続: 0 0 0.0 0 2
処理中: 58 163 71.2 155 2452
待機中: 53 158 69.6 150 2329
合計: 58 163 71.2 155
パーセンテージ処理されたリクエストのうち一定時間内 (ms)
50% 155
66% 178
75% 193
80% 204
90% 235
95% 258
98% 285
99% 302
100% 2452 (最長リクエスト)

eAccelerator加速器:

ドキュメント パス: /
ドキュメントの長さ: 21757 バイト
同時実行レベル: 5
テストにかかった時間: 95.983986 秒
完了したリクエスト: 3000
失敗したリクエスト: 0
書き込みエラー: 0
合計転送数: 66777000 バイト
HTML 転送: 65271000 バイト
1 秒あたりのリクエスト数: 31.26 [#/秒] (平均)
リクエストあたりの時間: 159.973 [ms] (平均)
リクエストあたりの時間: 31.995 [ms] (すべての同時リクエストの平均)
転送速度: 679.39 [Kbytes/sec] 受信
接続時間 (ms)
最小平均[+/-sd]最大中央値
接続: 0 0 0.1 0 3
処理中: 57 159 91.3 148 3830
待機中: 50 152 89.8 142 3704
合計: 57 159 91.3 148
パーセンテージ処理されたリクエストのうち一定時間内 (ミリ秒)
50% 148
66% 174
75% 193
80% 205
90% 239
95% 263
98% 289
99% 309
100% 3830 (最長リクエスト)

XCache加速器:

ドキュメント パス: /
ドキュメントの長さ: 21757 バイト
同時実行レベル: 5
テストにかかった時間: 99.76300 秒
完了したリクエスト: 3000
失敗したリクエスト: 0
書き込みエラー: 0
合計転送数: 66777000 バイト
転送された HTML: 65271000 バイト
1 秒あたりのリクエスト数: 30.28 [#/秒] (平均)
リクエストあたりの時間: 165.127 [ms] (平均)
リクエストあたりの時間: 33.025 [ms] (すべての同時リクエストの平均)
転送速度: 658.19 [Kbytes/sec] 受信
接続時間 (ms)
最小平均[+/-sd]最大中央値
接続: 0 0 0.0 0 2
処理中: 59 164 83.4 155 3367
待機中: 52 156 66.4 148 1802
合計: 59 164 83.4 155
パーセンテージ処理されたリクエストのうち一定時間内 (ミリ秒)
50% 155
66% 178
75% 196
80% 206
90% 237
95% 263
98% 287
99% 305
100% 3367 (最長リクエスト)

3、果摘要

  请求时间(秒) 单次请求时间(毫秒) 最大内存占用(MB) 最小内存占用(MB)
None 10.41 96.08 24 24
APC 30.45 32.84 21 21
eAccelerator 31.26 31.99 23 18
XCache 30.28 33.02 29 19

四、PHP 加速器比较结果总结

1、要求時間と内部占有の観点から eAccelerator を取得することが最適です。

2、リクエスト時間内でアクセラレータを使用しない場合と比べて、アクセラレータを使用することが約 3 倍に達することがわかります。

3、各当局の見解によると、XCache は最も新しく更新されており、これは最も進歩したものでもあります。

以上は总结結果,你也许会问我到底用那个加速器好呢?你的システム環境を決定し、その後、eAccelerator と XCache を詳細に調査できるようになりました。この 2 つの通貨潜力も非常に大きく、最終的には、私達が比較したサイトの検索結果図:

翻訳链グラウンド址:http://www.vpser.net/opt/apc-eaccelerator-xcache.html


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート