Для диагностики проблем использования ЦП следует использовать трассировку событий для Windows (ETW) для сбора данных / профиля выборки ЦП.
Для захвата данных установите Windows Performance Toolkit, который является частью Windows SDK.
Windows 10 WPT можно использовать в Windows 8/Server 2012, Windows 8.1/Server 2012R2 и Windows 10/Server 2016. Если вы все еще используете Windows 7, используйте SDK/WPT с Build 15086.
(все остальные записи могут быть не выбраны)
Теперь запустите WPRUI.exe
выберите First Level
при ресурсах выберите загрузки ЦП и нажмите на старте.
Теперь запишите 1 минуту использования процессора. Через 1 минуту нажмите Сохранить.
Теперь проанализируйте сгенерированный файл ETL с помощью анализатора производительности Windows , перетащив и опустив график CPU Usage (sampled)
на analysis pane
и упорядочив столбцы, как показано на рисунке:
Внутри WPA загрузите символы отладки и разверните стек процесса SYSTEM. В этой демонстрации загрузка ЦП происходит от драйвера nVIDIA.
В следующей демонстрации загрузка ЦП происходит от драйвера сетевой карты Realtek:
Когда вы видите звонки, как ntoskrnl.exe!Vi KeTrimWorkerThreadRoutine, ntoskrnl.exe!Mm Verifier TrimMemory, ntoskrnl.exe!Verifier KeLeaveCriticalRegion, это означает, что у вас включен драйвер Driver Verifier. Это также сильно снижает производительность и приводит к высокому использованию СИСТЕМЫ. Отключите проверку драйверов и перезагрузите компьютер.
В этой демонстрации драйвер iai2ce.sys
(драйвер контроллера Intel Serial IO GPIO) вызывает его:
В этом примере загрузка ЦП происходит из файла rtsuvc.sys
который выглядит как Realtek UVC webcam Driver
Эта демонстрация показывает, что драйвер Bitdefender ignis.sys
В следующем примере загрузка ЦП определяется драйвером сети bcmwl664.sys
Когда вы видите ntoskrnl.exe!MiZeroWorkerPages
как причина, это сложнее. Это означает, что функция ядра, которая обнуляет память, прежде чем ее можно будет использовать снова, вызывает высокую загрузку ЦП:
Нет реального способа определить, какой процесс вызывает его, но я знаю, что Chrome может вызвать его, если в Chrome включено аппаратное ускорение. Так что, если вы видите это и используете Chrome, отключите аппаратное ускорение в Chrome.
Когда вы видите эти ntoskrnl.exe!RtlpGenericRandomPatternWorker, ntoskrnl.exe!RtlpTestMemoryRandomUp вызывает
загрузка ЦП происходит из ядра для проверки памяти на наличие проблем (memtest). Это использование запускается через задачу обслуживания в режиме ожидания Windows 8.1/10. Вы можете использовать планировщик заданий, чтобы отключить незанятую задачу.
В Windows 10 эта задача называется RunFullMemoryDiagnostics в Microsoft> Windows> MemoryDiagnostic> RunFullMemoryDiagnostic.
В этом случае загрузка ЦП, по-видимому, происходит от функции дедупликации данных (dedup.sys!DdpPostCreate) Windows Server:
В этой демонстрации загрузка ЦП вызвана драйвером карты WIFI athrx.sys
Ищите обновление драйвера, если видите это.
В следующей демонстрации задействован драйвер citrix:
Поэтому свяжитесь с вашим ИТ-специалистом, чтобы решить проблемы Citrix.
В этой демонстрации функция usbhub.sys!UsbhPortRecycle
вызывает использование процессора:
Изменение портов USB2.0 на скорость 1.1 или подключение USB-накопителей к другим портам USB 2.0 помогло некоторым пользователям.
В этом случае небольшой объем использования СИСТЕМЫ исходит от драйвера Acronis tdrpm251.sys
:
В этой демонстрации использование процессора ntoskrnl.exe!KeAcquireSpinLockRaiseToDpc
и ntoskrnl.exe!KeReleaseSpinLock
.
поэтому драйвер очень сильно использует SpinLocks . Отключите некоторые устройства / драйверы, пока не увидите тот, который вызывает его.
В этом случае загрузка процессора вызвана драйвером L1C62x64.sys
Это качественный гигабитный драйвер qualcomm atheros AR8171/8175 PCI-E gigabit Ethernet
. Поэтому обновите драйвер, если вы видите его в стеке.
Здесь загрузка ЦП происходит при сканировании файла хоста (netbt.sys!DelayedScanLmHostFile)
убедитесь, что файл hosts не слишком велик, чтобы избежать такого использования.
В этом случае загрузка процессора происходит от SRTSP64.SYS от Symantec.
Обновите использованный продукт Symantec до последней версии.
Здесь загрузка ЦП происходит от драйвера AMD GPU (atikmdag.sys)
если вы видите это, перейдите на сайт AMD и получите последнюю версию драйвера для вашей карты AMD.
Здесь драйверы TMXPFlt.sys и VsapiNt.sys вызывают высокую загрузку ЦП.
Из того, что я вижу, эти файлы являются частью пакета Trend Micro AV. Обновите инструмент или удалите его.
В этом примере загрузка ЦП происходит из функции ntoskrnl.exe!MmGetPageFileInformation
Эта функция получает информацию о файле подкачки.
Описание процедуры: эта процедура возвращает информацию о текущих активных файлах подкачки.
Отключите файл подкачки, перезагрузите и включите его снова, и посмотрите, исправит ли это. Кроме того, удаление служб Intel (например, службы Intel Content Protection HECI), кажется, исправило это для пользователя.
Здесь вы можете видеть, что драйвер Netwtw04.sys
(драйвер Intel Wifi) вызывает функцию flushCompleteAllPendingFlushRequests
и это вызывает высокую загрузку ЦП.
Поскольку символы отладки загружаются, используется драйвер входящих сообщений Windows. Только здесь мы можем получить символы отладки, чтобы увидеть стек вызовов с именем функции flushCompleteAllPendingFlushRequests
.
Здесь вы должны установить последнюю версию драйвера от Intel, чтобы исправить это.
Наиболее сложным случаем использования SYSTEM является использование ACPI.sys в стеке вызовов:
Line #, DPC/ISR, Module, Stack, Count, Process, Weight (in view) (ms), TimeStamp (s), % Weight
6, , , | |- ACPI.sys!ACPIWorkerThread, 40246, , 39.992,941063, , 4,13
7, , , | | ACPI.sys!RestartCtxtPassive, 40246, , 39.992,941063, , 4,13
8, , , | | ACPI.sys!InsertReadyQueue, 40246, , 39.992,941063, , 4,13
9, , , | | ACPI.sys!RunContext, 40246, , 39.992,941063, , 4,13
10, , , | | ntoskrnl.exe!KeReleaseSpinLock, 40246, , 39.992,941063, , 4,13
11, , , | | ntoskrnl.exe!KiDpcInterrupt, 40246, , 39.992,941063, , 4,13
12, , , | | ntoskrnl.exe!KiDispatchInterruptContinue, 40246, , 39.992,941063, , 4,13
13, , , | | ntoskrnl.exe!KxRetireDpcList, 40246, , 39.992,941063, , 4,13
14, , , | | ntoskrnl.exe!KiRetireDpcList, 40246, , 39.992,941063, , 4,13
15, , , | | |- ntoskrnl.exe!KiExecuteAllDpcs, 40198, , 39.945,173325, , 4,13
16, , , | | | |- ACPI.sys!ACPIInterruptDispatchEventDpc, 27565, , 27.408,930428, , 2,83
17, , , | | | | |- ACPI.sys!ACPIGpeEnableDisableEvents, 24525, , 24.384,921620, , 2,52
18, , , | | | | | ACPI.sys!ACPIWriteGpeEnableRegister, 24525, , 24.384,921620, , 2,52
19, , , | | | | | |- hal.dll!HalpAcpiPmRegisterWrite, 24421, , 24.281,015516, , 2,51
20, , , | | | | | | |- hal.dll!HalpAcpiPmRegisterWritePort, 24166, , 24.027,316013, , 2,48
это чрезвычайно сложно отладить. В теме sysinternals я перечислил несколько советов:
- убедитесь, что процессор не перегревается из-за пыли в вентиляторе процессора
- обновить или повторно прошить (тот же) BIOS/UEFI
- загрузить настройки BIOS/UEFI по умолчанию
- убедитесь, что аккумулятор не поврежден, выньте аккумулятор из ноутбука или отключите аккумулятор в диспетчере устройств.
- замените перемычку на жестком диске, если вы заменили дисковод DVD/Blue-Ray на диск для установки твердотельного накопителя рядом со старым жестким диском
В следующей демонстрации проблема возникает с драйвером Intel HD igdkmd64.sys
версии 4545 для Intel HD 630:
Решение - обновить драйвер до версии не ниже .4590.
В следующем случае загрузка ЦП процесса SYSTEM вызвана драйвером stdriverx64.sys
Кажется, это драйвер потокового аудио. Поэтому обновите это программное обеспечение / драйвер, если вы видите это в WPA.
Если вы видите драйвер с именем risdxc64.sys
в стеке вызовов SYSTEM, который вызывает высокую загрузку ЦП, обновите драйвер хост-контроллера Ricoh PCIe SDXC/MMC или отключите устройство чтения карт SD в диспетчере устройств, если обновление не выполняется ни одним драйвером.
Этот кард-ридер SD встроен во многие устройства Lenovo.