web-dev-qa-db-ja.com

PHP 5.5、w3合計キャッシュ、およびopcache

PHP5.5にはZendOptimizer opcacheが組み込まれていて、それはかなりうまくいっているようで、ベンチマークはパフォーマンスにおいてAPCよりもわずかに優れているようです。すばらしいです。だからAPCは去っていくようだ。

私の質問はw3総キャッシュについてです。 W3TCには、APCを使用してデータベースとオペコードのキャッシュを実行するオプションがあり、私はこれをAPCu(APCユーザーキャッシュ)を使用して多少うまく機能させることができました。 opcacheとの互換性は完全ではありませんでした - たとえば、キャッシュの無効化などの調整をしないと、奇妙な保存の問題が発生します。

疑問に思っています - opcache/dbcache用のユーザーストアドキャッシュにAPCuを使用するのは、まったく価値があるのでしょうか。私はそれをオフにし、私のCPU負荷はもう少し低いようで、Zend opcacheがすでに重い作業をしていることを考えれば、本当に何かを成し遂げるかどうかと思います。

私はもっ​​とバニラをインストールする(APCuを使わない)のが好きです。しかし、私は本当にパフォーマンスを失っているのだろうか。考えですか?

1
Erik Westlund

あなたはAPCuがどんな機能を実行するかについて少し混乱しているようです。それはonlyキー/値ストアを実装します。 APCuの目的はそれを新しいZendのopcode実装に任せることであるため、opcodeのキャッシュは実行されません。

APC(u)と互換性のあるオブジェクトキャッシュプラグインWPを使うと、キャッシュ(ページのロードが終了するとネイティブに破棄される)とトランジェント(データベースにネイティブに保存される)の保存に切り替わります。それほど目に見えないが、これは内部がどのように動くかについての大きな変化である。

だからあなたの質問への答えは二部構成です:

  1. オブジェクトキャッシュはWPビッグタイムで使用され、メモリストアは非常に高速であるため非常に優れたアイデアです。

  2. APC(u)は、オブジェクトキャッシュのバックエンドの1つに過ぎません。問題や懸念がある場合は、代替手段(memcached、redisなど)を簡単に探索できます。

3
Rarst

一般に、キャッシュのヒット数とミス数を分析する必要があります。比較的多くのミスがある場合は、キャッシュは役に立ちません。 APCはこの種の統計を提供していると思います。

ページキャッシュから提供されるページはPHPを使用せず、したがってAPCユーザキャッシュもまったく使用しません。 APCユーザキャッシュは、ログインユーザまたはコメントユーザに対して十分なページが生成されている場合にのみ役立ちます。

そのため、APCユーザーキャッシュがこの変更を行う前でも常にCPU時間を無駄にしている可能性は十分にありますが、トラフィックプロファイルによって異なります。

0
Mark Kaplun