3

行数がかなり少ないカサンドラクラスターがあります(200万程度、カサンドラにとっては「小さい」と思います)。各行には一意のUUIDがキー設定されており、各行には約200列があります(いくつか与えるか、いくつか取る)。全体として、これらはかなり小さな行であり、バイナリデータや大量のテキストはありません。ただ短い文字列。

古いデータベースからcassandraクラスターへの最初のインポートが完了しました。私は各マシンでカサンドラから地獄を調整しました。何億もの書き込みがありましたが、読み取りはありませんでした。これを使用するときが来たので、読み取り速度は絶対にひどいことに気づきました。一度に500から10000行のどこでもpycassaを使用してマルチゲットを実行しています。500行でも、パフォーマンスはひどく、30秒以上かかることもあります。

このタイプの動作の原因は何ですか?このような大規模なインポートの後に、どのようなことをお勧めしますか?ありがとう。

4

2 に答える 2

6

あなたはio-bottleneckedのように聞こえます。データがRAMに収まる場合、Cassandraはコアあたり約4000読み取り/秒を実行します。それ以外の場合は、他のものと同じようにシークバウンドになります。

通常、システムからの「地獄の調整」は、システムに負荷をかけ始めた後のために予約されていることに注意してください。:)

見る:

于 2011-04-21T21:38:23.017 に答える
2

マルチゲットをより小さなチャンクに分割するオプションはありますか?これを行うことで、複数のノードにgetを分散し、ノード間で負荷を分散し、逆シリアル化するパケットを小さくすることで、パフォーマンスを向上させることができます。

それは次の質問に私をもたらします、あなたの読み取り一貫性は何に設定されていますか?@jbellisが述べたIOボトルネックに加えて、特に高レベルの整合性が必要な場合は、ネットワークトラフィックの問題が発生する可能性もあります。

于 2011-04-21T21:53:57.360 に答える