nodetool tpstats
スレッド・プールの使用状況の統計を表示します。
スレッド・プールの使用状況の統計を表示します。
構文
$ nodetool <オプション> tpstats
オプションは以下のとおりです。- (-h | --host) <ホスト名> | <IPアドレス>
- (-p | --port) <ポート番号>
- (-pw | --password) <パスワード>
- (-u | --username) <ユーザー名>
- (-pwf <passwordFilePath | --password-file <passwordFilePath>)
構文の凡例
- 山かっこ(< >)は、リテラルではなく変数を意味する
- イタリック体は指定が任意であることを意味する
- パイプ(|)記号はORまたはAND/ORを意味する
- 省略記号(...)は繰り返し可能を意味する
- 範囲記号「(」および「)」はリテラルではなく、範囲を示す
説明
Cassandraは、 Staged Event Driven Architecture(SEDA)に基づいて設計されています。それぞれのタスクは、メッセージング・サービスによってつながっている複数の段階に分けられます。各段階には、キューとスレッド・プールが存在します。一部の段階は、同じノードに別の段階がある場合、その段階にあるメッセージング・サービスとキュー・タスクを即座にスキップします。次の段階での実行がビジーである場合、キューの要素が増えていく可能性があります。キューの要素が増えると、パフォーマンスのボトルネックが発生する可能性があります。nodetool tpstats
は、スレッド・プールごとに、Cassandraの操作の各段階のアクティブなタスク、保留中のタスク、完了したタスクの数に関する統計を提供します。いずれかのプールの保留中のタスクの数が多い場合は、http://wiki.apache.org/cassandra/Operations#Monitoringに説明されているように、パフォーマンスの問題が発生している可能性があります。
スレッド・プール統計を取得するには、ローカル・ノード上でnodetool tpstats
コマンドを実行します。
以下の表で各キー統計情報の意味について説明します。
統計の名前 | タスク | 関連情報 |
---|---|---|
AntiEntropyStage | 整合性のリペア | Nodetool repair |
CacheCleanupExecutor | キャッシュの消去 | |
CommitlogArchiver | コミット・ログのアーカイブ | |
CompactionExecutor | コンパクションの実行 | |
CounterMutationStage | ローカル・カウンターの変化 | 書き込みレートがミューテーション・レートを超えた場合にバックアップします。整合性レベルがONE(デフォルト)に設定されており、カウンター・インクリメント・ワークロードが高い場合、保留カウントが大きくなります。 |
GossipStage | 毎秒のゴシップ・ラウンドの処理 | 同期されていないスキーマは問題の原因になる可能性があります。nodetool resetlocalschema を使用することが必要な場合があります。 |
HintedHandoff | 取りこぼしたミューテーションを他のノードに送信 | 通常は、他の問題の兆候です。nodetool disablehandoff を使用して、リペアを実行します。 |
InternalResponseStage | ブートストラップおよびスキーマ・チェックを含む、クライアント以外が送信したメッセージへの応答 | |
MemtableFlushWriter | memtableの内容のディスクへの書き込み | キューへの追加がディスクI/O能力を超えている場合、バックアップします。キューのフラッシュの回数が少ないことで負荷が大きい場合、ソートでも問題が発生する可能性があります。大きなカラム名を持つ行が巨大であったり、CQLコレクションに挿入しようとしている値が多すぎることが、原因として考えられます。ディスクの問題の場合は、ノードを追加するか、構成を調整します。 |
MemtablePostFlush | Memtableフラッシュ後の操作 | コミット・ログ・ファイルを破棄して、セカンダリ・インデックスを追加します。 |
MemtableReclaimMemory | 使用されていないメモリーを使用可能にする | |
MigrationStage | スキーマの変更 | |
MiscStage | その他の操作 | ノードの除去の完了後にデータのスナップショットとレプリケーションを実行します。 |
MutationStage | ローカル書き込み | 保留中の書き込み要求数が多い場合は、これらの要求の処理に問題が発生していることを示しています。ノードを追加したり、ハードウェアと構成を調整したり、データ・モデルを更新することで処理が容易になります。 |
PendingRangeCalculator | ブートストラップおよび離脱ノードごとの保留範囲の計算 | 開発者に対する注意 |
ReadRepairStage | ダイジェスト・クエリーおよびキーのレプリカの更新 | レプリカ間に高速で適切な接続が存在します。保留が多くなりすぎた場合は、テーブルがread_repair_chanceとして0.11などの小さな値を使用するように変更することで、レートの高い読み取りテーブルのレートを下げてみてください。 |
ReadStage | ローカル読み取り | ローカル読み取りを実行します。また、行キャッシュからのデータのデシリアライズが含まれます。保留中の値により、読み取りレイテンシーが増加する可能性があります。通常、ノードを追加するか、システムを調整することで解決します。 |
RequestResponseStage | 他のノードからの応答の処理 | |
ValidationExecutor | スキーマの検証 |
メッセージ・タイプ | 段階 | メモ |
BINARY | なし | 廃止予定。現在、使用されていません。 |
_TRACE | なし(特別) | トレース(nodetool settraceprobability)を記録するために使用します。実行中ではなく、挿入時にメッセージを破棄する特別エグゼキューター(1スレッド、キューの深さ1000)があります。 |
MUTATION | MutationStage | 書き込みメッセージが、タイムアウト(write_request_timeout_in_ms)後に処理された場合、書き込み失敗をクライアントに送信したか、必要な整合性レベルを満たしました。成功した場合は、ミューテーションを実行するために、ヒンテッド・ハンドオフと読み取りリペアをリレーします。 |
COUNTER_MUTATION | MutationStage | 書き込みメッセージが、タイムアウト(write_request_timeout_in_ms)後に処理された場合、書き込み失敗をクライアントに送信したか、必要な整合性レベルを満たしました。成功した場合は、ミューテーションを実行するために、ヒンテッド・ハンドオフと読み取りリペアをリレーします。 |
READ_REPAIR | MutationStage | write_request_timeout_in_ms後にタイムアウト |
読み取り | ReadStage | read_request_timeout_in_ms後にタイムアウト。それ以降の読み取りは行われず、クライアントにエラーが返されます。 |
RANGE_SLICE | ReadStage | range_request_timeout_in_ms後にタイムアウト。 |
PAGED_RANGE | ReadStage | request_timeout_in_ms後にタイムアウト。 |
REQUEST_RESPONSE | RequestResponseStage | request_timeout_in_ms後にタイムアウト。応答が完了して、返送されたが、タイムアウト前ではなかった。 |
例
コマンドを2秒ごとに実行します。
$ nodetool -h labcluster tpstats
出力例:
Pool Name Active Pending Completed Blocked All time blocked CounterMutationStage 0 0 0 0 0 ReadStage 0 0 103 0 0 RequestResponseStage 0 0 0 0 0 MutationStage 0 0 13234794 0 0 ReadRepairStage 0 0 0 0 0 GossipStage 0 0 0 0 0 CacheCleanupExecutor 0 0 0 0 0 AntiEntropyStage 0 0 0 0 0 MigrationStage 0 0 11 0 0 ValidationExecutor 0 0 0 0 0 CommitLogArchiver 0 0 0 0 0 MiscStage 0 0 0 0 0 MemtableFlushWriter 0 0 126 0 0 MemtableReclaimMemory 0 0 126 0 0 PendingRangeCalculator 0 0 1 0 0 MemtablePostFlush 0 0 1468 0 0 CompactionExecutor 0 0 254 0 0 InternalResponseStage 0 0 1 0 0 HintedHandoff 0 0 0 Message type Dropped RANGE_SLICE 0 READ_REPAIR 0 PAGED_RANGE 0 BINARY 0 READ 0 MUTATION 180 _TRACE 0 REQUEST_RESPONSE 0 COUNTER_MUTATION 0