59

高負荷時のパフォーマンスを改善しようとしており、オペコード キャッシュを実装したいと考えています。次のうちどれを使用すればよいですか?

私はまた、私のレーダーの下に滑り落ちた他の代替案にもオープンです.

現在、Apache 2 および PHP 5.2 を使用したスト​​ック Debian Etch で実行中

【アップデート1】

HowtoForge のインストール リンクが追加されました

【アップデート2】

回答とフィードバックに基づいて、アプリケーションで次の Apache JMeter テスト計画を使用して、3 つの実装すべてをテストしました。

  • ログイン
  • ホームページにアクセス

同時接続数が 50 の場合、結果は次のようになります。

オペコードのキャッシュなし
オペコードのキャッシュなし

APC
APC

eアクセラレータ
eアクセラレータ

XCache
XCache

パフォーマンス グラフ (小さいほど良い)
パフォーマンス グラフ

上記の結果から、eAccelerator は APC や XCache と比較してパフォーマンスがわずかに優れています。ただし、上記のデータから最も重要なことは、あらゆる種類のオペコード キャッシュによってパフォーマンスが大幅に向上することです。

次の 2 つの理由により、APC を使用することにしました。

  • パッケージは公式の Debian リポジトリで入手できます
  • より機能的なコントロールパネル

私の経験を要約すると:

インストールの容易さ: APC > eAccelerator > XCache
パフォーマンス: eAccelerator > APC、XCache
コントロール パネル: APC > XCache > eAccelerator

4

7 に答える 7

18

答えは、実行している Web アプリケーションの種類によって異なると思います。私は 2 年前に自分でこの決定を下さなければならず、Zend Optimizer と eAccelerator のどちらかを決めることができませんでした。

決定を下すために、ab (apache ベンチ) を使用してサーバーをテストし、3 つの組み合わせ (zend、eaccelerator、両方の実行) をテストして、eAccelerator だけで最高のパフォーマンスが得られることを証明しました。

時間に余裕がある場合は、同様のテストを自分で行い、結果に基づいて決定することをお勧めします。

于 2008-08-26T17:58:05.783 に答える
6

eAcclerator、APC、XCache、および Zend Optimizer を使用していくつかのベンチマークを実行しました (Zend はキャッシュではなくオプティマイザーですが)。

ベンチマーク結果 http://blogs.interdose.com/dominik/wp-content/uploads/2008/04/opcode_wordpress.png

結果: eAccelerator が (すべてのテストで) 最速で、XCache と APC がそれに続きます。(図中のものは、WordPress ホームページを 10,000 回呼び出すのにかかる秒数です)。

Zend Optimizer により、すべてが遅くなりました (!)。

于 2008-08-26T19:37:52.440 に答える
5

Windows へのインストールが簡単だったので APC を使用し、WAMP で開発しています。

APC の PHP6 への統合については、こちらで説明しました: http://www.php.net/~derick/meeting-notes.html#add-an-opcode-cache-to-the-distribution-apc

また、Debian Etch に APC をインストールする方法については、 http ://www.howtoforge.com/apc-php5-apache2-debian-etch を参照してください。

于 2008-08-26T19:00:26.383 に答える
4

はっきりとは言えませんが、私が今取り組んでいるところでは、APC と eAccelerator を見ています。ただし、これはあなたに影響を与える可能性があります - APC は PHP の将来のリリースに統合される予定です(Ed Haber のリンクに感謝します)。

于 2008-08-26T17:52:25.937 に答える
3

私は eAccelerator でうまくいきました (無負荷での速度の改善は顕著です) が、XCache もかなり有望なようです。ただし、それぞれでいくつかの試行を実行したい場合がありますが、アプリケーションはそれぞれで異なる方法でスケーリングされる場合があります。

于 2008-08-26T17:57:14.227 に答える
1

これらのアドオンは、歴史的に追跡すべき多くの奇妙なバグをもたらしてきました. これらのバグは、キャッシュの状態に依存するため、簡単に診断できない一貫性のない動作を引き起こす可能性があります。

だから私は言うだろう:

  1. 上記のものは使用しないでください。代わりに、より多くのスズを購入してください。これは、パフォーマンスを向上させるためのより信頼性の高い (つまり、エラーのない) 方法です。また
  2. アプリケーションからパンツをテストした上で、上記のうち最も堅牢なものを選択してください.

しかし、私は言うだろう:

  1. アプリケーションをプロファイリングして、パフォーマンスの問題を引き起こしているのが本当に PHP コードの解析であることを確認してください。そうではない可能性が非常に高いと思います。その場合、それらのいずれかをインストールすることで時間を無駄にすることになります (実際には、時間を無駄に使ってしまいます)。
于 2008-09-16T21:24:12.120 に答える
1

XCache を 1 年以上使用していますが、まったく問題はありません。

eAccelerator に切り替えようとしましたが、多くのセグメンテーション エラーが発生しました (エラーの許容度が低くなります)。eAccelerator の主な利点は、それが単なるオペコード キャッシュではなく、オプティマイザーでもあることです。

問題がないことを確認するために、それらのそれぞれでアプリケーションを完全にテストする必要があります。次に、apachebench を使用して負荷をかけた状態でテストします。

于 2008-08-26T18:02:19.830 に答える