スレッド プール ETW イベント
これらのイベントは、ワーカーと I/O スレッドに関する情報を収集します。
スレッド プール イベントには次の 2 つのグループがあります。
ワーカー スレッド プール イベント。アプリケーションによるスレッド プールの使用方法および同時実行制御に対する作業負荷の影響に関する情報を提供します。
I/O スレッド プール イベント。スレッド プール内で作成、リタイア、リタイア解除、または終了が行われた I/O スレッドに関する情報を提供します。
ワーカー スレッド プール イベント
これらのイベントは、ランタイムのワーカー スレッド プールに関連するイベントで、スレッド イベント (スレッドが作成されたときや停止したときなど) の通知を提供します。 ワーカー スレッド プールでは、同時実行制御にアダプティブ アルゴリズムが使用されているため、測定されたスループットに基づいてスレッドの数が計算されます。 ワーカー スレッド プール イベントを使用すると、アプリケーションでスレッド プールがどのように使用されているかや、特定の作業負荷が同時実行制御にどのような影響を与えるのかを把握できます。
ThreadPoolWorkerThreadStart および ThreadPoolWorkerThreadStop
次の表に、これらのイベントのキーワードとレベルを示します (詳細については、「CLR ETW キーワードおよびレベル」を参照してください)。
イベントを発生させるキーワード |
レベル |
---|---|
ThreadingKeyword (0x10000) |
情報提供 (4) |
次の表に、イベント情報を示します。
イベント |
イベント ID |
いつ発生するか |
ThreadPoolWorkerThreadStart |
50 |
ワーカー スレッドが作成されました。 |
ThreadPoolWorkerThreadStop |
51 |
ワーカー スレッドが停止しました。 |
ThreadPoolWorkerThreadRetirementStart |
52 |
ワーカー スレッドがリタイアしました。 |
ThreadPoolWorkerThreadRetirementStop |
53 |
リタイアしたワーカー スレッドが再びアクティブになりました。 |
次の表に、イベント データを示します。
フィールド名 |
データ型 |
説明 |
---|---|---|
ActiveWorkerThreadCount |
win:UInt32 |
作業の処理に使用できるワーカー スレッドの数 (既に作業を処理しているスレッドを含む)。 |
RetiredWorkerThreadCount |
win:UInt32 |
作業の処理には使用できないが、より多くのスレッドが必要になった場合のために保持されているワーカー スレッドの数。 |
ClrInstanceID |
Win:UInt16 |
CLR または CoreCLR のインスタンスの一意の ID。 |
ThreadPoolWorkerThreadAdjustment
これらのスレッド プール イベントは、スレッド インジェクション (同時実行制御) アルゴリズムの動作の把握およびデバッグのための情報を提供します。 この情報は、ワーカー スレッド プールによって内部で使用されます。
ThreadPoolWorkerThreadAdjustmentSample
次の表に、キーワードとレベルを示します。
イベントを発生させるキーワード |
レベル |
---|---|
ThreadingKeyword (0x10000) |
情報提供 (4) |
次の表に、イベント情報を示します。
イベント |
イベント ID |
説明 |
---|---|---|
ThreadPoolWorkerThreadAdjustmentSample |
54 |
1 つのサンプルについての一連の情報 (ある時点における特定の同時実行レベルでのスループットの測定値) を表します。 |
次の表に、イベント データを示します。
フィールド名 |
データ型 |
説明 |
---|---|---|
Throughput |
win:Double |
単位時間あたりの完了数。 |
ClrInstanceID |
Win:UInt16 |
CLR または CoreCLR のインスタンスの一意の ID。 |
ThreadPoolWorkerThreadAdjustmentAdjustment
次の表に、キーワードとレベルを示します。
イベントを発生させるキーワード |
レベル |
---|---|
ThreadingKeyword (0x10000) |
情報提供 (4) |
次の表に、イベント情報を示します。
イベント |
イベント ID |
説明 |
---|---|---|
ThreadPoolWorkerThreadAdjustmentAdjustment |
55 |
スレッド インジェクション (山登り法) アルゴリズムによって同時実行レベルの変更が確認された場合に制御の変更を記録します。 |
次の表に、イベント データを示します。
フィールド名 |
データ型 |
説明 |
---|---|---|
AverageThroughput |
win:Double |
測定値のサンプルの平均スループット。 |
NewWorkerThreadCount |
win:UInt32 |
アクティブなワーカー スレッドの新しい数。 |
理由 |
win:UInt32 |
調整の理由。 0x00 - ウォームアップ。 0x01 - 初期化。 0x02 - ランダムな動き。 0x03 - 上昇の動き。 0x04 - 変化点。 0x05 - 安定化。 0x06 - 不足。 0x07 - スレッドのタイムアウト。 |
ClrInstanceID |
Win:UInt16 |
CLR または CoreCLR のインスタンスの一意の ID。 |
ThreadPoolWorkerThreadAdjustmentStats
次の表に、キーワードとレベルを示します。
イベントを発生させるキーワード |
レベル |
---|---|
ThreadingKeyword (0x10000) |
情報提供 (4) |
次の表に、イベント情報を示します。
イベント |
イベント ID |
説明 |
---|---|---|
ThreadPoolWorkerThreadAdjustmentStats |
56 |
スレッド プールについてのデータを収集します。 |
次の表に、イベント データを示します。
フィールド名 |
データ型 |
説明 |
---|---|---|
Duration |
win:Double |
これらの統計情報が収集された期間 (秒)。 |
Throughput |
win:Double |
この期間の 1 秒あたりの平均完了数。 |
ThreadWave |
win:Double |
内部使用のために予約されています。 |
ThroughputWave |
win:Double |
内部使用のために予約されています。 |
ThroughputErrorEstimate |
win:Double |
内部使用のために予約されています。 |
AverageThroughputErrorEstimate |
win:Double |
内部使用のために予約されています。 |
ThroughputRatio |
win:Double |
この期間のアクティブなワーカー スレッド数の変化によってスループットがどれくらい改善されたかを相対的に示す値。 |
Confidence |
win:Double |
ThroughputRatio フィールドの妥当性の尺度。 |
NewcontrolSetting |
win:Double |
アクティブなスレッド数の将来の変化のベースラインとして使用されるアクティブなワーカー スレッドの数。 |
NewThreadWaveMagnitude |
Win:UInt16 |
アクティブなスレッド数の将来の変化の大きさ。 |
ClrInstanceID |
Win:UInt16 |
CLR または CoreCLR のインスタンスの一意の ID。 |
ページのトップへ
I/O スレッド イベント
これらのスレッド プール イベントは、非同期の I/O スレッド プール (完了ポート) のスレッドに対して発生します。
IOThreadCreate_V1
次の表に、キーワードとレベルを示します。
イベントを発生させるキーワード |
レベル |
---|---|
ThreadingKeyword (0x10000) |
情報提供 (4) |
次の表に、イベント情報を示します。
イベント |
イベント ID |
いつ発生するか |
IOThreadCreate_V1 |
44 |
スレッド プールで I/O スレッドが作成されたとき。 |
次の表に、イベント データを示します。
フィールド名 |
データ型 |
説明 |
---|---|---|
[カウント] |
win:UInt64 |
I/O スレッドの数 (新たに作成されたスレッドを含む)。 |
NumRetired |
win:UInt64 |
リタイアしたワーカー スレッドの数。 |
ClrInstanceID |
Win:UInt16 |
CLR または CoreCLR のインスタンスの一意の ID。 |
IOThreadRetire_V1
次の表に、キーワードとレベルを示します。
イベントを発生させるキーワード |
レベル |
---|---|
ThreadingKeyword (0x10000) |
情報提供 (4) |
次の表に、イベント情報を示します。
イベント |
イベント ID |
いつ発生するか |
---|---|---|
IOThreadRetire_V1 |
46 |
I/O スレッドがリタイアの候補になったとき。 |
次の表に、イベント データを示します。
フィールド名 |
データ型 |
説明 |
---|---|---|
[カウント] |
win:UInt64 |
スレッド プールに残っている I/O スレッドの数。 |
NumRetired |
win:UInt64 |
リタイアした I/O スレッドの数。 |
ClrInstanceID |
Win:UInt16 |
CLR または CoreCLR のインスタンスの一意の ID。 |
IOThreadUnretire_V1
次の表に、キーワードとレベルを示します。
イベントを発生させるキーワード |
レベル |
---|---|
ThreadingKeyword (0x10000) |
情報提供 (4) |
次の表に、イベント情報を示します。
イベント |
イベント ID |
いつ発生するか |
---|---|---|
IOThreadUnretire_V1 |
47 |
I/O スレッドがリタイア候補になった後の待機期間の間に I/O が受信されたためにスレッドがリタイア解除されたとき。 |
次の表に、イベント データを示します。
フィールド名 |
データ型 |
説明 |
---|---|---|
[カウント] |
win:UInt64 |
スレッド プール内の I/O スレッドの数 (このスレッドを含む)。 |
NumRetired |
win:UInt64 |
リタイアした I/O スレッドの数。 |
ClrInstanceID |
Win:UInt16 |
CLR または CoreCLR のインスタンスの一意の ID。 |
IOThreadTerminate
次の表に、キーワードとレベルを示します。
イベントを発生させるキーワード |
レベル |
---|---|
ThreadingKeyword (0x10000) |
情報提供 (4) |
次の表に、イベント情報を示します。
イベント |
イベント ID |
いつ発生するか |
---|---|---|
IOThreadTerminate |
45 |
スレッド プールで I/O スレッドが作成されたとき。 |
次の表に、イベント データを示します。
フィールド名 |
データ型 |
説明 |
---|---|---|
[カウント] |
win:UInt64 |
スレッド プールに残っている I/O スレッドの数。 |
NumRetired |
win:UInt64 |
リタイアした I/O スレッドの数。 |
ClrInstanceID |
Win:UInt16 |
CLR または CoreCLR のインスタンスの一意の ID。 |
ページのトップへ