다음을 통해 공유


스레드 풀 ETW 이벤트

이러한 이벤트는 작업자 스레드 및 I/O 스레드에 대한 정보를 수집합니다.

스레드 풀 이벤트에는 다음 두 가지 그룹이 있습니다.

  • 작업자 스레드 풀 이벤트. 이러한 스레드 풀 이벤트는 응용 프로그램에서 스레드 풀을 사용하는 방식에 대한 정보 및 작업 부하가 동시성 제어에 미치는 영향에 대한 정보를 제공합니다.

  • I/O 스레드 풀 이벤트. 이러한 스레드 풀 이벤트는 스레드 풀에서 만들어지거나, 만료되거나, 만료되지 않거나 종료된 I/O 스레드에 대한 정보를 제공합니다.

작업자 스레드 풀 이벤트

이러한 이벤트는 런타임의 작업자 스레드 풀과 관련이 있으며 스레드 이벤트에 대한 알림을 제공합니다(예: 스레드가 만들어지거나 중지될 때). 작업자 스레드 풀은 동시성 제어를 위해 자동 선택 알고리즘을 사용합니다. 이 알고리즘에서는 측정된 처리량을 기준으로 스레드 수가 계산됩니다. 작업자 스레드 풀 이벤트는 응용 프로그램이 스레드 풀을 사용하는 방법 그리고 특정 작업 부하가 동시성 제어에 미칠 수 있는 영향을 이해하는 데 사용될 수 있습니다.

ThreadPoolWorkerThreadStart 및 ThreadPoolWorkerThreadStop

다음 표에서는 이러한 이벤트의 키워드 및 수준을 보여 줍니다. 자세한 내용은 CLR ETW 키워드 및 수준을 참조하십시오.

이벤트를 발생시키는 키워드

수준

ThreadingKeyword(0x10000)

Informational (4)

다음 표에서는 이벤트 정보를 보여 줍니다.

Event

이벤트 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)

Informational (4)

다음 표에서는 이벤트 정보를 보여 줍니다.

Event

이벤트 ID

설명

ThreadPoolWorkerThreadAdjustmentSample

54

한 샘플에 대한 정보 수집을 나타냅니다. 즉, 특정 시점에 특정 동시성 수준으로 처리량을 측정한 것입니다.

다음 표에서는 이벤트 데이터를 보여 줍니다.

필드 이름

데이터 형식

설명

Throughput

win:Double

시간 단위당 완료 수입니다.

ClrInstanceID

Win:UInt16

CLR 또는 CoreCLR 인스턴스의 고유 ID입니다.

ThreadPoolWorkerThreadAdjustmentAdjustment

다음 표에서는 키워드 및 수준을 보여 줍니다.

이벤트를 발생시키는 키워드

수준

ThreadingKeyword(0x10000)

Informational (4)

다음 표에서는 이벤트 정보를 보여 줍니다.

Event

이벤트 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)

Informational (4)

다음 표에서는 이벤트 정보를 보여 줍니다.

Event

이벤트 ID

설명

ThreadPoolWorkerThreadAdjustmentStats

56

스레드 풀의 데이터를 수집합니다.

다음 표에서는 이벤트 데이터를 보여 줍니다.

필드 이름

데이터 형식

설명

기간

win:Double

이러한 통계가 수집된 시간(초)입니다.

Throughput

win:Double

이 간격 동안의 초당 평균 완료 수입니다.

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)

Informational (4)

다음 표에서는 이벤트 정보를 보여 줍니다.

Event

이벤트 ID

발생하는 경우

IOThreadCreate_V1

44

스레드 풀에서 I/O 스레드가 만들어집니다.

다음 표에서는 이벤트 데이터를 보여 줍니다.

필드 이름

데이터 형식

설명

개수

win:UInt64

새로 만들어진 스레드를 포함한 I/O 스레드 수입니다.

NumRetired

win:UInt64

만료된 작업자 스레드 수입니다.

ClrInstanceID

Win:UInt16

CLR 또는 CoreCLR 인스턴스의 고유 ID입니다.

IOThreadRetire_V1

다음 표에서는 키워드 및 수준을 보여 줍니다.

이벤트를 발생시키는 키워드

수준

ThreadingKeyword(0x10000)

Informational (4)

다음 표에서는 이벤트 정보를 보여 줍니다.

Event

이벤트 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)

Informational (4)

다음 표에서는 이벤트 정보를 보여 줍니다.

Event

이벤트 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)

Informational (4)

다음 표에서는 이벤트 정보를 보여 줍니다.

Event

이벤트 ID

발생하는 경우

IOThreadTerminate

45

스레드 풀에서 I/O 스레드가 만들어집니다.

다음 표에서는 이벤트 데이터를 보여 줍니다.

필드 이름

데이터 형식

설명

개수

win:UInt64

스레드 풀에 남아 있는 I/O 스레드의 수입니다.

NumRetired

win:UInt64

만료된 I/O 스레드 수입니다.

ClrInstanceID

Win:UInt16

CLR 또는 CoreCLR 인스턴스의 고유 ID입니다.

맨 위로 이동

참고 항목

개념

CLR ETW 이벤트