2

現在、Apache Cassandra のパフォーマンスの問題をデバッグしています。列ファミリーの Memtable がいっぱいになると、SSTable にフラッシュするためにキューに入れられます。このフラッシュは、大量の書き込みを実行するときによく発生します。このキューがいっぱいになると、次にフラッシュが正常に完了するまで書き込みがブロックされます。これは、ノードが受信している書き込みを処理できないことを示しています。

この動作を示す nodetool にマトリックスはありますか? つまり、ノードが受信している書き込みに追いつけないことを示すデータが必要です。

ありがとう!!

4

3 に答える 3

4

数年間はそうではありません。アクティブな memtable が切り替えられ、新しい memtable がライブとしての位置を占めます。「フラッシュされる」memtable がローカル読み取りに含まれている間に、このライブ memtable で新しいミューテーションが発生します。MemtableFlushWriter スレッド プールには、キューに入れられたフラッシュ タスクがあります。そのため、そこで保留中の数を確認できます (tpstats の下)。バックアップ中のミューテーションは、MutationStage の下にも表示されます。

最終的に

nodetool tpstats

おそらくあなたが探しているものです。

于 2016-01-13T21:09:15.843 に答える
3

ノードが受信している書き込みに追いつけないことを示すデータが必要です。

あなたの問題は、ディスク I/O がスループットを処理できないことに関連している可能性があります --> memtables のフラッシュがキューに入れられます --> 書き込みがブロックされます

コマンドdstatは、I/O の問題を調査するのに役立ちます。他の Linux コマンドも便利な場合があります。Amy Tobey によるこの優れたブログ投稿をお読みください: https://tobert.github.io/pages/als-cassandra-21-tuning-guide.html

この動作を示す nodetool にマトリックスはありますか?

nodetool tpstats

于 2016-01-13T20:57:29.087 に答える
2

tp (スレッドプール) の統計情報を探していると思います。

nodetool tpstats

通常、ブロックされた FlushWriter は、ストレージ システムが書き込みワークロードに追いついていないことを示します。たまたま回転ディスクを使用していませんか? この場合も iostat に注意してください。

tpstats のドキュメントは次のとおりです: https://docs.datastax.com/en/cassandra/2.1/cassandra/tools/toolsTPstats.html

于 2016-01-13T20:54:23.937 に答える