3

Emails という列ファミリーがあり、この CF にメールを保存しています。5000 件のメールを書き込むのに 100 秒以上かかります。

i3 プロセッサ、8GB RAM を使用しています。私のデータセンターには、レプリケーション係数 = 2 の 6 つのノードがあります。

Cassandra に保存するデータのサイズはパフォーマンスに影響しますか? 書き込みパフォーマンスに影響を与えるすべての要因と、パフォーマンスを向上させる方法を教えてください。

前もって感謝します..

4

2 に答える 2

9

あなたが尋ねている要因のいくつかは次のとおりです。

  • クライアントとクラスター間、およびクラスター内のマシン間の接続速度とレイテンシー ( @omnibearが言及)
  • 使用しているレプリケーション ファクター - メールを次々と挿入する場合、レプリケーション ファクターは単一操作の遅延に影響を与える可能性があり、合計時間が増加します。つまり、書き込み操作のバッチ処理を検討することができます。
  • i3/8gb を使用していると書いていますが、それはクライアントまたはサーバー マシンの構成ですか? サーバー マシンの構成、特にメモリの量とそれらで実行されている他のプロセスは明らかにパフォーマンスに影響を与える可能性があります。
  • コミット ログとデータ ファイルの場所 - コミット ログは、データ ファイルとは別の物理ディスクに配置することをお勧めします
  • 圧縮戦略-あなたの場合は問題にならないに違いありませんが、一般的には書き込みのパフォーマンスにも影響します。Cassandra は最初にデータを memtable とコミット ログに書き込み、次にコミット ログを sstables にフラッシュし、最後に sstables をマージします (これをコンパクションと呼びます)。このプロセスのパラメーターを調整して、特定のユースケースでパフォーマンスを向上させることができます。ここで C* の書き込みパスについて読むことができます
  • また、パフォーマンスに関する優れた DataStax ドキュメント ノート ( http://www.datastax.com/documentation/cassandra/2.0/cassandra/dml/dml_throughput_c.html )、( http://www.datastax.com/documentation/ cassandra/2.0/cassandra/architecture/architecturePlanningAntiPatterns_c.html ) および ( http://www.datastax.com/documentation/cassandra/2.0/cassandra/operations/ops_tune_jvm_c.html )

余談ですが、レプリケーション ファクターを 3 に増やすことを検討する必要があるかもしれません。rf=2 ではあまり得られないためです。consistency level = quorum を使用し、1 つのノードに障害が発生すると、クラスターを使用できなくなります。cl=quorum で rf=3 を使用する場合、強力な整合性を実現するには、2 つのノードに対して読み取り/書き込みを行う必要がありますが、さらに、ノードを失ってもクラスターが使用できなくなります。

于 2014-04-04T06:29:04.273 に答える