События пула потоков (трассировка событий 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. |
К началу