nodetool tpstats
スレッド・プールの使用状況の統計を表示します。
cassandra.yaml
cassandra.yamlファイルの場所は、インストールのタイプによって異なります。パッケージ・インストール | /etc/dse/cassandra/cassandra.yaml |
tarボール・インストール | installation_location/resources/cassandra/conf/cassandra.yaml |
スレッド・プールの使用状況の統計を表示します。DataStax Enterprise(DSE)データベースは、staged event-driven architecture(SEDA)に基づいて設計されています。
データベースは、異なるタスクをメッセージング・サービスに接続された段階に分けます。各段階には、キューとスレッド・プールが存在します。一部の段階には、同じノードに別の段階が存在する場合、別の段階にあるメッセージング・サービスとキュー・タスクを即座にスキップします。「DataStax Enterpriseのクラスターの監視」で説明されているように、次の段階がビジー状態で、パフォーマンスのボトルネックにつながる場合、データベースはキューをバックアップできます。
レポートは、コンパクションまたはフラッシュによってSSTableが変更されたときに更新されます。
カラムのレポート
nodetool tpstats
コマンド・レポートには、次のカラムが含まれています。- Active
Active
スレッドの数。- Pending
- このスレッド・プールによる実行を待機している
Pending
要求の数。 - Completed
- このスレッド・プールによる
Completed
タスクの数。 - Blocked
- サービスの次のステップのスレッド・プールが満杯であるため、現在
Blocked
となっている要求の数。 - All-Time Blocked
All-Time Blocked
要求の総数。これは、現在までにこのスレッド・プールでブロックされたすべての要求です。
行のレポート
以下のリストでは、nodetool tpstats
出力でレポートされるタスクに関連付けられているタスクまたはプロパティについて説明します。
一般的なメトリック
- BackgroundIoStage
- ヒントの送信や行キャッシュのデシリアライズなどのバックグラウンド・タスクを完了します。
- CompactionExecutor
- コンパクションの実行。
- GossipStage
- ゴシップ経由でのノード情報の分散。同期されていないスキーマは問題の原因になる可能性があります。nodetool resetlocalschemaを使用して同期する必要がある場合があります。
- HintsDispatcher
- 1つのヒント・ファイルをバッチ形式で指定したノードにディスパッチします。
- InternalResponseStage
- ブートストラップおよびスキーマ・チェックを含む、クライアント以外が送信したメッセージへの応答。
- MemtableFlushWriter
- memtableの内容のディスクへの書き込み。キューがディスクI/Oをオーバーランした場合、またはプロセスのソートが原因でバックアップすることがあります。警告:
nodetool tpstats
は、MemtableFlushWriterプールでブロックされたスレッドは報告しません。nodetool tblestats
で報告される保留中のフラッシュ・メトリクスを確認してください。 - MemtablePostFlush
- memtableをフラッシュした後のクリーンアップ(必要に応じてコミット・ログおよびセカンダリ・インデックスを破棄します)。
- MemtableReclaimMemory
- 使用されていないメモリーを使用可能にする。
- PendingRangeCalculator
- ブートストラップおよび離脱ノードごとの保留範囲の計算。このツールによるレポートは役に立ちません。「開発者に対する注意」を参照してください。
- PerDiskMemtableFlushWriter_N
- 各ディスクのmemtableフラッシュ書き込みのアクティビティ。
- ReadRepairStage
- 読み取りリペアの実行。レプリカ間の接続が良好であれば、通常は高速です。
コアあたりのスレッド(TPC)タスク・メトリック
tpc_concurrent_requests_limit
の値セットに制限されます(デフォルトで、128)。コアあたりのスレッド・メッセージには、その先頭にTPC/type
が追加されます。ここで、 - TPC/Nはコアnumberに対するメトリックです(
--cores
が指定される場合)。 - TPC/otherは、TPCスレッド以外で実行されたタスクのメトリックです。
- TPC/allはすべてのコアの集計タスクのメトリックです。
- UNKNOWN
- 不明なタスク。
- FRAME_DECODE
- 非同期フレーム・デコード。
- READ_LOCAL
- クライアントから直接生成されたローカル・ノードからの単一パーティション読み取り要求。
- READ_REMOTE
- リモート・レプリカからの単一パーティション読み取り要求。
- READ_TIMEOUT
- 信号の読み取りタイムアウト・エラー。
- READ_DEFERRED
- イベント・ループで最初にスケジュールされる単一パーティション読み取り要求(Pendable)
- READ_RESPONSE
- 単一パーティション読み取り応答。
- READ_RANGE_LOCAL
- クライアントから直接生成されたローカル・ノードからのパーティション範囲読み取り要求。
- READ_RANGE_REMOTE
- リモート・レプリカからのパーティション範囲読み取り要求。
- READ_RANGE_NODESYNC
- NodeSyncから開始されたパーティション範囲読み取り。
- READ_RANGE_INTERNAL
- 内部テーブルへの範囲読み取り。
- READ_RANGE_RESPONSE
- パーティション範囲読み取りの応答。
- READ_FROM_ITERATOR
- スレッドを切り替え、イテレーターから読み取ります。
- READ_SECONDARY_INDEX
- スレッドを切り替え、セカンダリ・インデックスから読み取ります。
- READ_DISK_ASYNC
- ディスクからのデータを待機します。
- WRITE_LOCAL
- クライアントから直接生成されたローカル・ノードからの書き込み要求。
- WRITE_REMOTE
- リモート・レプリカからの書き込み要求。
- WRITE_INTERNAL
- 内部テーブルへの書き込み。
- WRITE_RESPONSE
- 書き込み応答
- WRITE_DEFRAGMENT
- 多すぎるSStableの読み取りが必要なデフラグ・データに対して発行された書き込み
- WRITE_MEMTABLE
- 正しいスレッドにまだない場合に、スレッドを切り替えてmemtableに書き込みます。
- WRITE_POST_COMMITLOG_SEGMENT
- 書き込み要求は、コミット・ログ・セグメントの割り当てを待機しています。
- WRITE_POST_COMMITLOG_SYNC
- 書き込み要求は、コミット・ログがディスクに同期されるのを待機しています。
- WRITE_POST_MEMTABLE_FULL
- 書き込み要求は、memtable内のスペースを待機しています。
- BATCH_REPLAY
- バッチ・ミューテーションの再生
- BATCH_STORE
- バッチログ・エントリ要求を格納します(Pendable)
- BATCH_STORE_RESPONSE
- バッチログ・エントリ応答を格納します
- BATCH_REMOVE
- バッチログ・エントリを削除します(Pendable)
- COUNTER_ACQUIRE_LOCK
- カウンター・ロックを取得しています。
- EXECUTE_STATEMENT
- 文を実行しています。
- CAS
- compare-and-setを実行しています(LWT)。
- LWT_PREPARE
- 軽量トランザクションの準備フェーズ(Pendable)。
- LWT_PROPOSE
- 軽量トランザクションの提案フェーズ(Pendable)。
- LWT_COMMIT
- 軽量トランザクションのコミット・フェーズ(Pendable)。
- TRUNCATE
- 切り捨て要求(Pendable)。
- NODESYNC_VALIDATION
- パーティションのNodeSync検証。
- AUTHENTICATION
- 認証要求。
- AUTHORIZATION
- 承認要求。
- TIMED_UNKNOWN
- スケジュールされた不明なタスク。
- TIMED_TIMEOUT
- スケジュールされたタイムアウト・タスク。
- EVENTLOOP_SPIN
- 実行するタスクがない場合に、このTPCスレッドによって実行されたビジー・スピン・サイクルの数。
- EVENTLOOP_YIELD
- 実行するタスクがない場合に、このTPCスレッドによって実行されたThread.yield()呼び出しの数。
- EVENTLOOP_PARK
- 実行するタスクがない場合に、このTPCスレッドによって実行されたLockSupport.park()呼び出しの数。
- HINT_DISPATCH
- ヒント・ディスパッチ要求(Pendable)。
- HINT_RESPONSE
- ヒント・ディスパッチ応答。
- NETWORK_BACKPRESSURE
- スケジュールされたネットワークのバック・プレッシャー。
削除可能なメッセージ
データベースは以下のメッセージを生成しますが、タイムアウト後に破棄します。nodetool tpstats
コマンドは、削除された各タイプのメッセージ数を報告します。JMXクライアントを使用して、これらのメッセージを表示できます。
メッセージ・タイプ | 段階 | 注記 |
---|---|---|
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後にタイムアウト |
READ | 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後にタイムアウト。応答が完了して、返送されたが、タイムアウト前ではなかった。 |
構文
nodetool [connection_options] tpstats [-C] [-F json | yaml]
構文規則 | 説明 |
---|---|
大文字 | リテラル・キーワード。 |
小文字 | リテラル以外。 |
Italics |
変数値。有効なオプションまたはユーザー定義値と置き換えます。 |
[ ] |
任意。角かっこ( [] )で任意のコマンド引数を囲みます。角かっこは入力しないでください。 |
( ) |
グループ。丸かっこ(( ) )は、選択肢を含むグループを示します。丸かっこは入力しないでください。 |
| |
または。縦棒(| )で代替要素を区切ります。要素のいずれかを入力してください。縦棒は入力しないでください。 |
... |
繰り返し可能。省略記号(... )は、構文要素を必要な回数だけ繰り返すことができることを示します。 |
'Literal string' |
単一引用符( ' )でCQL文内のリテラル文字を囲みます。大文字を維持するには、単一引用符を使用します。 |
{ key:value } |
マップ・コレクション。中かっこ( { } )でマップ・コレクションまたはキーと値のペアを囲みます。コロンでキーと値を区切ります。 |
<datatype1,datatype2> |
セット、リスト、マップ、またはタプル。山かっこ(< > )で、セット、リスト、マップまたはタプル内のデータ型を囲みます。データ型をカンマで区切ります。 |
cql_statement; |
CQL文の終了。セミコロン( ; )ですべてのCQL文を終了します。 |
[ -- ] |
コマンドライン・オプションとコマンド引数は、2つのハイフン(-- )で区切ります。この構文は、引数がコマンドライン・オプションと間違われる可能性がある場合に役立ちます。 |
' <schema> ...</schema> ' |
検索CQLのみ:単一引用符( ' )でXMLスキーマ宣言全体を囲みます。 |
@xml_entity='xml_entity_type' |
検索CQLのみ:スキーマ・ファイルおよびsolrconfigファイル内のXML要素を上書きする実体とリテラル値を示します。 |
定義
短い形式と長い形式のパラメーターはカンマで区切られています。
接続オプション
- -h, --host hostname
- リモート・ノードのホスト名またはIPアドレス。省略した場合、デフォルトはローカル・マシンです。
- -p, --port jmx_port
- JMXポート番号。
- -pw, --password jmxpassword
- セキュアなJMXで認証するためのJMXパスワード。パスワードを入力しないと、入力するように求められます。
- -pwf, --password-file jmx_password_filepath
- JMX認証用の資格情報を格納するファイルへのファイルパス。
- -u, --username jmx_username
- セキュアなJMXで認証するためのユーザー名。
コマンド引数
- -C, --cores
- 各コアのデータを含みます。コア数はtpc coresによって決まります。
- -F, --format json | yaml
- 出力の形式。デフォルトはプレーン・テキストです。
例
ホストlabcluster上でnodetool tpstatsを実行します
nodetool tpstats -C
コマンド出力は次のとおりです。
Pool Name Active Pending (w/Backpressure) Delayed Completed Blocked All time blocked
CompactionExecutor 0 0 (N/A) N/A 80 0 0
MemtableFlushWriter 0 0 (N/A) N/A 59 0 0
MemtablePostFlush 0 0 (N/A) N/A 294 0 0
MemtableReclaimMemory 0 0 (N/A) N/A 59 0 0
PendingRangeCalculator 0 0 (N/A) N/A 1 0 0
PerDiskMemtableFlushWriter_0 0 0 (N/A) N/A 58 0 0
TPC/0 0 0 (0) 0 235 N/A 0
TPC/0/EVENTLOOP_PROCESSED_TASKS 0 N/A (N/A) N/A 3077 N/A N/A
TPC/0/EVENTLOOP_SCHEDULED_TASKS 0 N/A (N/A) N/A 4081 N/A N/A
TPC/0/EVENTLOOP_SELECTOR_EVENTS 0 N/A (N/A) N/A 1506 N/A N/A
TPC/0/EVENTLOOP_SELECT_CALLS 1 N/A (N/A) N/A 1500 N/A N/A
TPC/0/EVENTLOOP_SELECT_NOW_CALLS 0 N/A (N/A) N/A 1507 N/A N/A
TPC/0/EVENTLOOP_SPIN 0 N/A (N/A) N/A 13589 N/A N/A
TPC/0/READ_DISK_ASYNC 0 N/A (N/A) N/A 48 N/A N/A
TPC/0/READ_INTERNAL 0 N/A (N/A) N/A 9 N/A N/A
TPC/0/READ_RANGE_INTERNAL 0 N/A (N/A) N/A 2 N/A N/A
TPC/0/READ_RANGE_SWITCH_FOR_RESPONSE 0 N/A (N/A) N/A 2 N/A N/A
TPC/0/READ_SWITCH_FOR_RESPONSE 0 N/A (N/A) N/A 9 N/A N/A
TPC/0/TIMED_TIMEOUT 0 N/A (N/A) N/A 1038 N/A N/A
TPC/0/UNKNOWN 0 N/A (N/A) N/A 1 N/A N/A
TPC/0/WRITE_INTERNAL 0 N/A (N/A) N/A 2 N/A N/A
TPC/0/WRITE_SWITCH_FOR_MEMTABLE 0 N/A (N/A) N/A 160 N/A N/A
TPC/0/WRITE_SWITCH_FOR_RESPONSE 0 N/A (N/A) N/A 2 N/A N/A
TPC/all/EVENTLOOP_PROCESSED_TASKS 0 N/A (N/A) N/A 3095 N/A N/A
TPC/all/EVENTLOOP_SCHEDULED_TASKS 0 N/A (N/A) N/A 4102 N/A N/A
TPC/all/EVENTLOOP_SELECTOR_EVENTS 0 N/A (N/A) N/A 1501 N/A N/A
TPC/all/EVENTLOOP_SELECT_CALLS 1 N/A (N/A) N/A 1499 N/A N/A
TPC/all/EVENTLOOP_SELECT_NOW_CALLS 0 N/A (N/A) N/A 1507 N/A N/A
TPC/all/EVENTLOOP_SPIN 0 N/A (N/A) N/A 13607 N/A N/A
TPC/all/READ_DISK_ASYNC 0 N/A (N/A) N/A 48 N/A N/A
TPC/all/READ_INTERNAL 0 N/A (N/A) N/A 9 N/A N/A
TPC/all/READ_RANGE_INTERNAL 0 N/A (N/A) N/A 2 N/A N/A
TPC/all/READ_RANGE_SWITCH_FOR_RESPONSE 0 N/A (N/A) N/A 2 N/A N/A
TPC/all/READ_SWITCH_FOR_RESPONSE 0 N/A (N/A) N/A 9 N/A N/A
TPC/all/TIMED_TIMEOUT 0 N/A (N/A) N/A 1033 N/A N/A
TPC/all/UNKNOWN 0 N/A (N/A) N/A 1 N/A N/A
TPC/all/WRITE_INTERNAL 0 N/A (N/A) N/A 2 N/A N/A
TPC/all/WRITE_SWITCH_FOR_MEMTABLE 0 N/A (N/A) N/A 160 N/A N/A
TPC/all/WRITE_SWITCH_FOR_RESPONSE 0 N/A (N/A) N/A 2 N/A N/A
Message type Dropped Latency waiting in queue (micros)
50% 95% 99% Max
RANGE_SLICE 0 N/A N/A N/A N/A
SNAPSHOT 0 N/A N/A N/A N/A
HINT 0 N/A N/A N/A N/A
COUNTER_MUTATION 0 N/A N/A N/A N/A
LWT 0 N/A N/A N/A N/A
BATCH_STORE 0 N/A N/A N/A N/A
VIEW_MUTATION 0 N/A N/A N/A N/A
READ 0 N/A N/A N/A N/A
OTHER 0 N/A N/A N/A N/A
REPAIR 0 N/A N/A N/A N/A
SCHEMA 0 N/A N/A N/A N/A
MUTATION 0 N/A N/A N/A N/A
NODESYNC 0 N/A N/A N/A N/A
READ_REPAIR 0 N/A N/A N/A N/A
TRUNCATE 0 N/A N/A N/A N/A