NDB
管理クライアントの CLUSTERLOG STATISTICS
コマンドは、その出力に多くの有用な統計を提供できます。 クラスタの状態に関する情報を提供するカウンタは、トランザクションコーディネータ (TC) およびローカルクエリーハンドラ (LQH) によって 5 秒のレポート間隔で更新され、クラスタログに書き込まれます。
トランザクションコーディネータの統計. 各トランザクションには、1 つのトランザクションコーディネータがあり、それは次の方法のいずれかによって選択されます。
ラウンドロビン方式で
通信の近さによって
トランザクションの開始時にデータ配置ヒントを指定
ndb_optimized_node_selection
システム変数を使用すると、特定の SQL ノードから起動されたトランザクションに使用される TC の選択方法を判断できます。
同じトランザクション内の操作ではすべて、同じトランザクションコーディネータが使用され、次のような統計がレポートされます。
-
Trans count. これは、この TC をトランザクションコーディネータとして使用して、最後の期間で開始されたトランザクション数です。 これらのトランザクションのいずれかは、レポート期間の最後でコミットされた、中止された、または未コミットのままの状態になっている可能性があります。
注記トランザクションは TC 間で移行しません。
Commit count. これは、最後のレポート期間でコミットされた、この TC をトランザクションコーディネータとして使用したトランザクション数です。 このレポート期間でコミットされた一部のトランザクションは、前のレポート期間で開始された可能性があるため、
Commit count
がTrans count
よりも大きくなる可能性もあります。Read count. これは、最後のレポート期間で開始された、この TC をトランザクションコーディネータとして使用した主キーの読み取り操作 (単純な読み取りを含む) 数です。 このカウントには、一意のインデックス操作の一部として実行される読み取りも含まれます。 一意のインデックス読み取り操作では、2 つの主キー読み取り操作 (非表示の一意のインデックステーブルに対して 1 つ、および読み取りが行われるテーブルに対して 1 つ) が発生します。
Simple read count. これは、最後のレポート期間で開始された、この TC をトランザクションコーディネータとして使用した単純な読み取り操作数です。
-
Write count. これは、最後のレポート期間で開始された、この TC をトランザクションコーディネータとして使用した主キーの書き込み操作数です。 これには、一意のインデックス操作の一部として実行される書き込みに加えて、すべての挿入、更新、書き込み、および削除も含まれます。
注記一意のインデックスの更新操作では、インデックステーブルおよびベーステーブルで、複数の PK 読み取りおよび書き込み操作が発生する可能性があります。
-
AttrInfoCount. これは、この TC をトランザクションコーディネータとして使用した主キー操作の最後のレポート期間で受信された 32 ビットのデータ語の数です。 読み取りの場合、これはリクエストされたカラムの数に比例します。 挿入および更新の場合、これは書き込まれたカラムの数、およびそれらのデータのサイズに比例します。 削除操作の場合、これは通常ゼロです。
一意のインデックス操作では、複数の PK 操作が発生するため、このカウントが増加します。 ただし、ここでは、PK 操作自体を記述するために送信されたデータ語、および送信されたキー情報はカウントされません。 スキャン用に読み取られるカラムを記述するため、または ScanFilters を記述するために送信された属性情報も、
AttrInfoCount
ではカウントされません。 -
Concurrent Operations. これは、最後のレポート期間中に開始されたが完了しなかった、この TC をトランザクションコーディネータとして使用した主キーまたはスキャン操作数です。 このカウンタは、操作が開始されるとインクリメントされ、操作が完了するとデクリメントされます。これは、トランザクションのコミット後に行われます。 このカウンタは失敗した操作だけでなく、ダーティー読み取りおよび書き込みでもデクリメントされます。
Concurrent Operations
に指定可能な最大値は、TC ブロックでサポートできる操作の最大数です。現在、これは(2 * MaxNoOfConcurrentOperations) + 16 + MaxNoOfConcurrentTransactions
です。 (これらの構成パラメータについての詳細は、セクション23.3.3.6「NDB Cluster データノードの定義」の「トランザクションパラメータ」セクションを参照してください。) Abort count. これは、最後のレポート期間中に中止された、この TC をトランザクションコーディネータとして使用したトランザクション数です。 最後のレポート期間で中止された一部のトランザクションは、前のレポート期間で開始された可能性があるため、
Abort count
がTrans count
よりも大きくなる可能性もあります。Scans. これは、最後のレポート期間中に開始された、この TC をトランザクションコーディネータとして使用したテーブルスキャン数です。 これには、範囲スキャン (つまり、順序付きインデックススキャン) は含まれません。
Range scans. これは、最後のレポート期間で開始された、この TC をトランザクションコーディネータとして使用した順序付きインデックススキャン数です。
ローカル読取り. これは、レコードのプライマリフラグメントレプリカも保持するノードでトランザクションコーディネータを使用して実行される主キー読取り操作の数です。 この数は、
ndbinfo.counters
テーブルのLOCAL_READS
カウンタからも取得できます。ローカル書込み. これには、レコードのプライマリフラグメントレプリカも保持するノードでトランザクションコーディネータを使用して実行された主キー読取り操作の数が含まれます。 この数は、
ndbinfo.counters
テーブルのLOCAL_WRITES
カウンタからも取得できます。
ローカルクエリーハンドラの統計 (操作). ローカルクエリーハンドラブロックごとに、1 つのクラスタイベント (つまり、データノードプロセスごとに 1 つずつ) があります。 操作は、それらが操作しているデータが存在する LQH に記録されます。
単一のトランザクションが複数の LQH ブロックに格納されたデータを操作する場合もあります。
Operations
統計には、最後のレポート期間で、この LQH ブロックによって実行されたローカル操作数が表示され、すべてのタイプの読み取りおよび書き込み操作 (挿入、更新、書き込み、および削除の操作) が含まれます。 これには、書き込みをレプリケートするために使用される操作も含まれます。 たとえば、2 つのフラグメントレプリカを持つクラスタでは、プライマリフラグメントレプリカへの書込みはプライマリ LQH に記録され、バックアップへの書込みはバックアップ LQH に記録されます。 一意のキー操作では、複数のローカル操作が発生する可能性があります。ただし、これには、テーブルスキャンまたは順序付きインデックススキャンの結果として発生するローカル操作は含まれず、カウントもされません。
プロセススケジューラの統計. 各 ndbd プロセスには、トランザクションコーディネータおよびローカルクエリーハンドラによって報告される統計に加えて、NDB Cluster のパフォーマンスに関連する有用なメトリックも提供するスケジューラがあります。 このスケジューラは、無限ループ時に実行されます。各ループ中に、スケジューラは次のタスクを実行します。
ソケットからジョブバッファーに受信メッセージを読み込みます。
時間指定のメッセージが実行されたかどうかをチェックします。実行された場合は、これらのメッセージもジョブバッファーに配置します。
ジョブバッファー内のメッセージを (ループ内で) 実行します。
ジョブバッファー内のメッセージを実行することで生成された配信されるメッセージを送信します。
新しい受信メッセージを待機します。
プロセススケジューラの統計には、次の情報が含まれています。
Mean Loop Counter. これは、上記のリストの 3 番目のステップで実行されたループの数です。 TCP/IP バッファーの使用率が改善されると、この統計のサイズが増加します。 これを使用すると、新しいデータノードプロセスを追加したときにパフォーマンスの変化をモニターできます。
Mean send size と Mean receive size. これらの統計を使用すると、ノード間の書き込みと読み取りのそれぞれの効率性を測定できます。 値はバイト単位で指定されます。 値が大きいほど、送受信される 1 バイト当たりのコストが小さくなることを意味します。最大値は 64K です。
NDB
管理クライアントで次のコマンドを使用すると、クラスタログの統計をすべて記録できます。
ndb_mgm> ALL CLUSTERLOG STATISTICS=15
STATISTICS
のしきい値を 15 に設定すると、クラスタログが非常に冗長になり、NDB Cluster 内のクラスタノードの数とアクティビティーの量に直接比例してサイズが大幅に大きくなります。
ロギングおよびレポートに関連する NDB Cluster 管理クライアントコマンドの詳細は、セクション23.5.3.1「NDB Cluster ロギング管理コマンド」 を参照してください。