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コマンドを実行します。

以下の表で各キー統計情報の意味について説明します。

表 1. 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 スキーマの検証
表 2. 削除できるメッセージ
メッセージ・タイプ 段階 メモ
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