0

memcacheプール(5台のサーバー)といくつかの処理ノードを使用するアプリケーションに取り組んでいます。私には2つの異なるアプローチがありますが、2つの間のパフォーマンス(主に速度)に基づく比較についてコメントがありますか?

  1. リクエストごとに1回、memcacheから大量のデータを抽出し、それを繰り返して、特定のリクエストに必要のないビットを破棄します

  2. memcachedから小さな小さなビットを抽出し、必要なものだけを抽出します。つまり、aの値を抽出し、aの値に基づいて、bまたはcのいずれかの値を抽出します。この組み合わせを使用して、抽出したい次のキーを見つけます。

2つの違いは、memcachedルックアップ(サーバーのプール)の数が1に減少することですが、応答のサイズは増加します。誰かが以前に見たことがあるそれに関するベンチマークレポートはありますか?

残念ながら、可能な値のすべての組み合わせをサポートするのに十分なmemcacheがないため、リクエストに基づいてより良いキーを直接使用することはできません。そのため、実行時にその一部を構築する必要がありました。

ありがとう

4

1 に答える 1

0

独自のセットアップのベンチマークを行う必要があります。重要な部分は、次のことに費やす時間です。

  • memcache からの大量のデータのリクエスト + データの取得 + レスポンスからのデータの抽出
  • 複数のリクエストを memcache に送信 + データを取得する

基本的に、最初に測定する必要があるのは、キャッシュ プールとのやり取りのオーバーヘッドがどのくらい大きいかです。そして、負荷が増加したときにこの全体がどのように反応するかという小さな問題があります. 今は速いかもしれませんが、後でユーザーが殺到し始めると、ひどい決定になる可能性があります.

これは、「大きなチャンク」の定義によって異なります。ここで話しているのはメガバイトですか、それとも 100 個のキーを持つ配列ですか? また、php がその情報を処理する必要があることも考慮する必要があります。

この時点でできることは 2 つあります。

  1. 情報をどのように保存しているかをよく見てください。たぶん、2 つの小さな要求に減らすことができます。1 つは条件の特定のデータを取得するためのもので、もう 1 つは条件情報を取得するためのものです。

  2. サーバーに独自のベンチマークを設定します。Web 上のランダムな記事の中にはシステム アーキテクチャに関係のないものがあります。

これはあなたが聞きたかった答えではないことはわかっていますが、それは私の2 セントです.. どうぞ。

于 2012-05-15T09:09:02.720 に答える