スレッド プール 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。

ページのトップへ

参照

概念

CLR ETW イベント