1

ビジネス シナリオには次のものが必要です。

50M のキーと値のペア、それぞれ 2K、合計 100G のメモリ。

Key-Value の約 40% が 1 秒間に変化します。

Java アプリケーションでは、変更されたペアごとに Get() と set() を 1 回ずつ行う必要があり、50M*40%*2=4M qps (query per second) になります。

memcached をテストしましたが、これは非常に限られた qps を示しています。
私たちのベンチマークは、ここに示されている結果と非常によく似ています http://xmemcached.googlecode.com/svn/trunk/benchmark/benchmark.html

約 10,000 qps は、1 つの memcached サーバーの制限です。

つまり、私たちのビジネス シナリオでは、分割された memcached サーバーが 40 台必要になります。これは非常に経済的でなく、非現実的です。

あなたの経験では、memcached の設計されたパフォーマンスに関して、ベンチマークは正確ですか?

memcached システム (クライアントまたはサーバー) を調整するための提案はありますか?

または、より経済的に要件を満たすことができる他の代替メモリストアシステムはありますか?

よろしくお願いします!

4

1 に答える 1

1

前述のベンチマークのグラフを見ると、多くの場合、制限はネットワークであり、memcached ではないことに気付く必要があります。たとえば、すべてのアイテムに 2k の値がある場合、GigE ネットワークでの最大スループットは約 65k ops/秒になります。(1024*1024*128/2048=65536)。Memcached は、これよりも多くの操作を 1 秒あたりに実行できます。私は個人的に 512b の値で 200K ops/sec を達成しました (私はそう思います)。他の人が私よりもはるかに高いスループットを得ていると聞いています。ただし、これはすべてネットワークに大きく依存します。

また、memcached は、1 秒あたり 10,000 オペレーションでほとんど何も実行していません。私の推測では、ベンチマークで同時実行性を利用していません。

于 2012-04-17T01:47:05.617 に答える