他の場所から見た。
プログラム環境が 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
次に、PECL 拡張パスが変更されたため、コンパイルされたファイルを移動する必要があります:
$sudo mv /usr/local/php/lib/php/extensions/no-debug -non-zts -20060613/apc.so /usr/local/php/lib/php/extensions/PECL
extension_dir = "/usr/local/php/lib/php/extensions/PECL"
extension = apc.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.cache_by_default = on
このようにして、phpinfo()の情報にApacheの再起動が表示されるようになります。
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