ホームページ  >  記事  >  バックエンド開発  >  PHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル

PHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:09:37688ブラウズ

PHP アクセラレーション eAccelerator、/PHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル について、私が知っていた php5.2.x は Zend Optimizer のみを使用しており、暗号化された PHP プログラムは Zend Optimizer でのみ実行できるため、唖然としました。ただし、Zend Optimizer は php5.3.x 以降をサポートできず、ましてや eAccelerator、XPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル、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

次に、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"

extension = so

;
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.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_slots = 8k

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 chmod 777 /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、結果摘要



要求時間(秒)单次回要求時間(毫秒)96.0832.8431.992月33日
最大内存占用(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 サイトから結果の画像を作成しました。

PHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル

元のリンクアドレス: http://www.vpser.net/opt/apc-eaccelerator-xPHP アクセラレーションについて eAccelerator、Xcache、APC、Zend Optimizer、eacceleratorxcache_PHP チュートリアル.html

http://www.bkjia.com/PHPjc/944874.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/944874.html技術記事 PHP高速化eAcceleratorについては、
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。