5

私は、Web サービスの運用サーバーで PHP APC を使用しており、1 日あたり 1,000 万件のヒットを長い間成功させています。

より多くのデータを APC ローカル キャッシュにオフロードすることを検討しています。

理論的には、APC 呼び出しは主にローカル メモリ アクセスであるように見えます。10,000回/秒と言っても問題にならないはずです。私が知る限り、その制限はメモリ サイズにある可能性がありますが、サーバーに空き CPU がある限り、パフォーマンスや破損の問題が高率で発生することはありません。

アプリサーバー(ubuntu)でAPCのローカルオブジェクトキャッシュを非常に高速に使用できない可能性があることに気付いていない制限はありますか?

更新: どうやら以下の回答によると、私の質問は明確ではありませんでした。代替キャッシュ オプション (memcache、redis など) を探しているわけではありません。私の質問は、非常に高いレートでローカル APC を使用し、同時読み取りを行うことに懸念や制限があるかどうかです。

4

1 に答える 1

4

私は個人的に、この種のストレージにmemcachedを使用することの大ファンです。これにはいくつかの利点があります。

  • これは完全にストレージに焦点を当てたプログラムであり、memcached の開発は常にストレージに焦点を当てています。APC は主にコードのキャッシュであり、たまたまユーザー ストレージへのアクセスを提供するだけです。
  • Apache (または使用している Web サーバー) をリロードまたは再起動すると、APC のキャッシュが空になります。memcached などのスタンドアロン ソリューションを使用すると、キャッシュを空にするタイミングを制御できます。私の場合、これは非常に重要なことでした。Apache の構成を変更する必要があり、そうするときにキャッシュをクリアしたくない場合があります。これにより、大きな CPU スパイクが発生するためです (データを再度キャッシュにロードする)。 )。
  • 分散キャッシュを作成して、よりスケーラブルにする可能性があります。Web サイトが大きくなったために 2 台目のサーバーを追加する必要がある場合、同じものをキャッシュする 2 つのキャッシュは必要ありません。APC のキャッシュはそうではありませんが、memcached はうまくスケーリングします。

APC のユーザー キャッシュよりも memcached を使用することには他にも多くの利点がありますが、私にとって APC のユーザー キャッシュを使用しない主な 3 つの理由はこれらでした。もちろん、ユーザー キャッシュだけではなく、APC を使用します。

于 2012-04-23T12:45:07.257 に答える