Поделиться через


События пула потоков (трассировка событий Windows)

Эти события собирают сведения о рабочих потоках и потоках ввода-вывода.

Имеется две группы событий пула потоков.

  • События пула рабочих потоков, предоставляющие информацию о способе использования приложениями пула потоков и влияние рабочих нагрузок на управление параллелизмом.

  • События пула потоков ввода-вывода, предоставляющие информацию о потоках ввода-вывода, создаваемых, завершаемых, не завершаемых или прерываемых в пуле потоков.

События пула рабочих потоков

Эти события связаны с пулом рабочих потоков среды выполнения и содержат уведомления о событиях потоков (например, когда поток создается или останавливается). Пул рабочих потоков использует адаптивный алгоритм для управления параллелизмом, в котором число потоков рассчитывается в зависимости от измеренной производительности. События пула рабочих потоков могут использоваться, чтобы понять, как приложение использует пул потоков, и оценить влияние конкретных нагрузок на поведение управления параллелизмом.

ThreadPoolWorkerThreadStart и ThreadPoolWorkerThreadStop

В следующей таблице показаны ключевое слово и уровень для этих событий. (Дополнительные сведения см. в разделе Ключевые слова и уровни среды CLR (трассировка событий Windows).)

Ключевое слово для вызова события

Уровень

ThreadingKeyword (0x10000)

Информационный (4)

В следующей таблице приведены сведения о событии.

Событие

Идентификатор события

Условие вызова

ThreadPoolWorkerThreadStart

50

Создается рабочий поток.

ThreadPoolWorkerThreadStop

51

Рабочий поток останавливается.

ThreadPoolWorkerThreadRetirementStart

52

Рабочий поток завершается.

ThreadPoolWorkerThreadRetirementStop

53

Завершенный рабочий поток снова становится активным.

В следующей таблице приведены сведения о событии.

Имя поля

Тип данных

Описание

ActiveWorkerThreadCount

win:UInt32

Количество рабочих потоков, доступных для выполнения процесса, включая уже работающие потоки.

RetiredWorkerThreadCount

win:UInt32

Число рабочих потоков, которые недоступны для выполнения процесса, но находятся в резерве на случай, если позже понадобятся дополнительные потоки.

ClrInstanceID

Win:UInt16

Уникальный идентификатор экземпляра среды CLR или CoreCLR.

ThreadPoolWorkerThreadAdjustment

Эти события пула потоков содержат сведения для понимания и отладки поведения алгоритма вставки потока (управления параллелизмом). Эти сведения используются внутри пула рабочих потоков.

ThreadPoolWorkerThreadAdjustmentSample

В следующей таблице показаны ключевое слово и уровень.

Ключевое слово для вызова события

Уровень

ThreadingKeyword (0x10000)

Информационный (4)

В следующей таблице приведены сведения о событии.

Событие

Идентификатор события

Описание

ThreadPoolWorkerThreadAdjustmentSample

54

Ссылается на сбор сведений для одного образца, то есть измерение производительности с конкретным уровнем параллелизма в некоторый момент времени.

В следующей таблице приведены сведения о событии.

Имя поля

Тип данных

Описание

Throughput

win:Double

Число завершений в единицу времени.

ClrInstanceID

Win:UInt16

Уникальный идентификатор экземпляра среды CLR или CoreCLR.

ThreadPoolWorkerThreadAdjustmentAdjustment

В следующей таблице показаны ключевое слово и уровень.

Ключевое слово для вызова события

Уровень

ThreadingKeyword (0x10000)

Информационный (4)

В следующей таблице приведены сведения о событии.

Событие

Идентификатор события

Описание

ThreadPoolWorkerThreadAdjustmentAdjustment

55

Регистрирует изменение в управлении, когда алгоритм вставки потока (поиск экстремума) определяет, что произошло изменение уровня параллелизма.

В следующей таблице приведены сведения о событии.

Имя поля

Тип данных

Описание

AverageThroughput

win:Double

Средняя производительность образца измерений.

NewWorkerThreadCount

win:UInt32

Новое число активных рабочих потоков.

Причина

win:UInt32

Причина корректировки.

0x00 — прогрев.

0x01 — инициализация.

0x02 — случайное движение.

0x03 — движение вверх.

0x04 — точка изменения.

0x05 — стабилизация.

0x06 — неэффективная работа.

0x07 — истекло время ожидания потока.

ClrInstanceID

Win:UInt16

Уникальный идентификатор экземпляра среды CLR или CoreCLR.

ThreadPoolWorkerThreadAdjustmentStats

В следующей таблице показаны ключевое слово и уровень.

Ключевое слово для вызова события

Уровень

ThreadingKeyword (0x10000)

Информационный (4)

В следующей таблице приведены сведения о событии.

Событие

Идентификатор события

Описание

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.

К началу

События потоков ввода-вывода

Эти события пула потоков создаются для потоков в пуле потоков ввода-вывода (порты завершения), который является асинхронным.

IOThreadCreate_V1

В следующей таблице показаны ключевое слово и уровень.

Ключевое слово для вызова события

Уровень

ThreadingKeyword (0x10000)

Информационный (4)

В следующей таблице приведены сведения о событии.

Событие

Идентификатор события

Условие вызова

IOThreadCreate_V1

44

Поток ввода-вывода создается в пуле потоков.

В следующей таблице приведены сведения о событии.

Имя поля

Тип данных

Описание

Количество

win:UInt64

Число потоков ввода-вывода, включая вновь созданный поток.

NumRetired

win:UInt64

Число завершенных рабочих потоков.

ClrInstanceID

Win:UInt16

Уникальный идентификатор экземпляра среды CLR или CoreCLR.

IOThreadRetire_V1

В следующей таблице показаны ключевое слово и уровень.

Ключевое слово для вызова события

Уровень

ThreadingKeyword (0x10000)

Информационный (4)

В следующей таблице приведены сведения о событии.

Событие

Идентификатор события

Условие вызова

IOThreadRetire_V1

46

Поток ввода-вывода становится кандидатом на завершение.

В следующей таблице приведены сведения о событии.

Имя поля

Тип данных

Описание

Количество

win:UInt64

Число потоков ввода/вывода, остающихся в пуле потоков.

NumRetired

win:UInt64

Число завершенных потоков ввода-вывода.

ClrInstanceID

Win:UInt16

Уникальный идентификатор экземпляра среды CLR или CoreCLR.

IOThreadUnretire_V1

В следующей таблице показаны ключевое слово и уровень.

Ключевое слово для вызова события

Уровень

ThreadingKeyword (0x10000)

Информационный (4)

В следующей таблице приведены сведения о событии.

Событие

Идентификатор события

Условие вызова

IOThreadUnretire_V1

47

Поток ввода-вывода не завершается из-за ввода-вывода, поступающего в течение периода ожидания после того, как поток стал кандидатом на завершение.

В следующей таблице приведены сведения о событии.

Имя поля

Тип данных

Описание

Количество

win:UInt64

Число потоков ввода/вывода в пуле потоков, включая этот поток.

NumRetired

win:UInt64

Число завершенных потоков ввода-вывода.

ClrInstanceID

Win:UInt16

Уникальный идентификатор экземпляра среды CLR или CoreCLR.

IOThreadTerminate

В следующей таблице показаны ключевое слово и уровень.

Ключевое слово для вызова события

Уровень

ThreadingKeyword (0x10000)

Информационный (4)

В следующей таблице приведены сведения о событии.

Событие

Идентификатор события

Условие вызова

IOThreadTerminate

45

Поток ввода-вывода создается в пуле потоков.

В следующей таблице приведены сведения о событии.

Имя поля

Тип данных

Описание

Количество

win:UInt64

Число потоков ввода/вывода, остающихся в пуле потоков.

NumRetired

win:UInt64

Число завершенных потоков ввода-вывода.

ClrInstanceID

Win:UInt16

Уникальный идентификатор экземпляра среды CLR или CoreCLR.

К началу

См. также

Основные понятия

События трассировки событий Windows в среде CLR