Cassandra の Reading パフォーマンスのベンチマークを行っています。テストセットアップのステップで、1 / 2 / 4 の ec2 インスタンスとデータノードを持つクラスターを作成しました。1 億のエントリ (約 3 GB の csv ファイル) を含む 1 つのテーブルを作成しました。次に、spark-cassandra-connector を使用してデータを RDD に読み込む Spark アプリケーションを起動します。
ただし、動作は次のようにする必要があると考えました。Cassandra (Spark では同じインスタンス数) を使用するインスタンスが多いほど、読み取りが速くなります! 書き込みでは、すべてが正しいようです (クラスターが 2 倍大きい場合、~2 倍速くなります)。
しかし: 私のベンチマークでは、2 または 4 インスタンス クラスターよりも 1 インスタンス クラスターの方が読み取りが常に高速です!!!
私のベンチマーク結果:
クラスターサイズ 4: 書き込み: 1750 秒 / 読み取り: 360 秒
クラスターサイズ 2: 書き込み: 3446 秒 / 読み取り: 420 秒
クラスターサイズ 1: 書き込み: 7595 秒 / 読み取り: 284 秒
追加の試行 - Cassandra-Stress ツールを使用
Cassandra クラスター (サイズ 1 / 2 / 3 / 4 ノード) で「cassandra-stress」ツールを起動したところ、次の結果が得られました。
Clustersize Threads Ops/sek Time
1 4 10146 30,1
8 15612 30,1
16 20037 30,2
24 24483 30,2
121 43403 30,5
913 50933 31,7
2 4 8588 30,1
8 15849 30,1
16 24221 30,2
24 29031 30,2
121 59151 30,5
913 73342 31,8
3 4 7984 30,1
8 15263 30,1
16 25649 30,2
24 31110 30,2
121 58739 30,6
913 75867 31,8
4 4 7463 30,1
8 14515 30,1
16 25783 30,3
24 31128 31,1
121 62663 30,9
913 80656 32,4
結果: 4 つまたは 8 つのスレッドの場合、単一ノード クラスターは、より大きなクラスターと同じか、それよりも高速です!!!
ダイアグラムとして
の結果: データセットはクラスタ サイズ (1/2/3/4)、x 軸はスレッド、y 軸は ops/sec です。
--> ここで質問: これらの結果はクラスター全体の結果ですか、それともローカル ノードのテストですか (つまり、リングの 1 つのインスタンスのみの結果ですか)?
誰かが説明できますか?ありがとうございました!