Устранение проблем с высокой загрузкой ЦП процессом "Система"
Я заметил, что с некоторых пор моя система зависает, и это, вероятно, вызвано высокой загрузкой ЦП, вызванной системным процессом.
Все приложения, которые я запускаю, - это Skype, TeamSpeak и Chrome, поэтому они определенно не должны съедать такое количество процессора.
Вы можете увидеть саму проблему и запущенные процессы на скриншоте ниже:

Иногда загрузка процессора достигает 90%, но в среднем загрузка составляет 40-65%.
Параметры моего ПК:
- Windows 8 (предварительный просмотр клиента)
- Intel Core i3 - 2350M
- 8 ГБ ОЗУ
Буду признателен за любую попытку помощи! С уважением.
--ОБНОВИТЬ--
Поскольку пользователь ниже опубликовал отличный ответ, я заметил, что процесс, который потребляет больше всего ресурсов процессора в системе, называется Arthurx.sysПростой Google говорит, что это драйвер TPLink (адаптер Wi-Fi, я купил как 2 недели назад!) драйверы были установлены из Windows MSDN, но также пытался установить драйверы с прилагаемого компакт-диска, но это не помогает, С момента запуска системы он использует только 5% процессорного времени, но после 2-4 часов работы он растет и достигает 40-60% загрузки процессора.
Имя устройства: TPLink WN722N
5 ответов
Для диагностики проблем использования ЦП следует использовать трассировку событий для 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, под Resource выберите использование CPU и нажмите на start.
Теперь захватите 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
В следующем примере загрузка ЦП определяется драйвером сети Broadcom 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.
В этом случае загрузка процессора, кажется, происходит от Data Deduplication Особенность (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 на диск для установки SSD рядом со старым жестким диском
- отключить некоторые устройства в соответствии с рекомендациями этого пользователя
- если вы используете набор микросхем Intel, попробуйте установить Intel Rapid Storage Technology (RST), чтобы заменить стандартный драйвер AHCI из Windows. Это также, похоже, помогло.
- пользователь Shayna выяснил, что использование Process Hacker (запущенного от имени администратора) для приостановки потоков проблем ACPI.sys "исправляет" проблему для него. Так что попробуйте его обойти, если все остальные шаги не исправят это для вас.
В следующей демонстрации драйвер Intel HD igdkmd64.sys в версии.4574 для Intel HD 630 вызывает проблему:
Решение - обновить драйвер до версии не ниже.4590.
В следующем случае загрузка ЦП процесса SYSTEM вызвана драйвером stdriverx64.sys
Кажется, это драйвер потокового аудио. Поэтому обновите это программное обеспечение / драйвер, если вы видите это в WPA.
Если вы видите водителя по имени risdxc64.sys в стеке вызовов SYSTEM, который вызывает высокую загрузку ЦП, обновите драйвер хост-контроллера Ricoh PCIe SDXC/MMC или отключите устройство чтения SD-карт в диспетчере устройств, если обновление не было исправлено ни одним драйвером.
Это устройство чтения карт SD, похоже, встроено во многие устройства Lenovo.
Это может быть вызвано неисправным драйвером или другим модулем, загруженным системой. Чтобы заглянуть внутрь системного процесса, вы можете использовать такой инструмент, как Process Explorer.
Скачайте и запустите его, затем выберите "Системный процесс", щелкните правой кнопкой мыши и выберите "Свойства":

Перейдите на вкладку Threads (игнорируйте диалоговое окно, в котором упоминаются символы):

Это покажет, какой файл использует чрезмерную загрузку ЦП, после чего вы можете попытаться диагностировать его.
Однако, как говорили другие в комментариях, вам действительно нужно как можно скорее отойти от версий Preview.
Замечание о загрузке символов отладки для добавления к отличному ответу magicandre1981: если загрузка символов в Windows Performance Analyzer работает правильно, после того, как вы отметите Trace > Load Symbols, вы должны увидеть индикатор прогресса вверху с символами загрузки, который показывает имена файлов рядом с ним и занимает несколько минут, чтобы закончить. Также вы должны увидеть много строк, как показано ниже в диагностической консоли:
SYMSRV: File: Accessibility.ni.pdb
SYMSRV: Notifies the client application that a proxy has been detected.
SYMSRV: Connecting to the Server: http://msdl.microsoft.com/download/symbols.
SYMSRV: Successfully connected to the Server.
SYMSRV: Sending the information request to the server.
SYMSRV: Successfully sent the information request to the server.
SYMSRV: Waiting for the server to respond to a request.
SYMSRV: Successfully received a response from the server.
SYMSRV: Closing the connection to the Server.
SYMSRV: Successfully closed the connection to the Server.
SYMSRV: Get File Path: /download/symbols/Accessibility.ni.pdb/7B46178957827CDAB7EE4C86EDEE1DAE1/Accessibility.ni.pdb
Если вы не видите ни одного из них, загрузка символов отладки, вероятно, не сработала, и вы не сможете правильно интерпретировать свою трассировку.
В моем случае изначально загрузка отладочных символов не работала. Я исправил это, следуя этим инструкциям:
Выясните, используете ли вы x86 или x64 версию Windows Performance Toolkit.
Это легко на x86 сборках Windows. В сборках x64 вы можете проверить диспетчер задач на наличие тега *32. Если его там нет, значит, вы работаете с версией x64.
Обратите внимание, что WPT всегда устанавливается в Program Files (x86) независимо от архитектуры.
Скопируйте
dbghelp.dllа такжеsymsrv.dllфайлы из правильного каталога отладчика в каталог Windows Performance Toolkit. В моей системе соответствующие каталоги:
C:\Program Files (x86)\Windows Kits\10\Debuggers\x64а такжеC:\Program Files (x86)\Windows Kits\10\Windows Performance ToolkitПерезапустите анализатор производительности Windows, чтобы была выбрана правильная версия dbghelp.dll.
Моя проблема заключалась в том, что загрузка ЦП была смехотворно высокой при загрузке чего-либо (до 4 ГГц). У меня хищник Helios 300 с WiFi-картой Killer, поэтому драйвер Killer был предустановлен. Я использовал Process Explorer, чтобы войти в
System"Свойства" → вкладка "Потоки" и обнаружил, что "kfeco10x64.sys" вызывает высокую загрузку ЦП. Поскольку "kfeco10x64.sys" был частью сетевой службы-убийцы, я отключил ее, запустив
msconfig и снятие отметки с каждой услуги от "Rivet Networks".
После перезапуска проблема у меня ушла. Самое главное, что при загрузке, похоже, не происходит никакого снижения скорости. Надеюсь, это поможет любому, кто сталкивается с такой же проблемой.
Ответ, добавленный magicandre1981, является ключом к решению любой проблемы. Моего дела там не было, но я нашел похожее слово в стеке, описанном в
The most complicated case of SYSTEM usage is ACPI.sys usage in the callstack:раздел. В моем случае установка
Intel Rapid Storageводителю помогли. Я не ожидал этого, поскольку все работали много времени без этого драйвера и без каких-либо проблем с процессором. Я положил сюда свой стек, наверное, кто-нибудь найдет ответ по похожим ключевым словам.
Line #, Process, Stack, Count, Weight (in view) (ms), TimeStamp (s), % Weight
3, , [Root], 45104, 45,300.439000, , 16.21
4, , ntoskrnl.exe!KiStartSystemThread, 45104, 45,300.439000, , 16.21
5, , ntoskrnl.exe!PspSystemThreadStartup, 45104, 45,300.439000, , 16.21
6, , |- ntoskrnl.exe!SMKM_STORE_MGR<SM_TRAITS>::SmCompressCtxWorkerThread, 38830, 38,997.540000, , 13.95
7, , | |- ntoskrnl.exe!SMKM_STORE_MGR<SM_TRAITS>::SmCompressCtxProcessEntry, 38708, 38,874.943400, , 13.91
8, , | | |- ntoskrnl.exe!memcpy, 33888, 34,032.390100, , 12.18
9, , | | | |- ntoskrnl.exe!memcpy<itself>, 33655, 33,795.069100, , 12.09
10, , | | | |- ntoskrnl.exe!KiDpcInterrupt, 228, 232.331300, , 0.08
11, , | | | |- ntoskrnl.exe!KiInterruptDispatchNoLockNoEtw, 4, 3.989700, , 0.00
12, , | | | |- ntoskrnl.exe!KiInterruptDispatch, 1, 1.000000, , 0.00
13, , | | |- ntoskrnl.exe!RtlCompressBuffer, 2571, 2,585.541600, , 0.93
14, , | | |- ntoskrnl.exe!SMKM_STORE_MGR<SM_TRAITS>::SmCompressCtxProcessReadyQueue, 2015, 2,022.554900, , 0.72
15, , | | |- ntoskrnl.exe!MmBuildMdlForNonPagedPool, 129, 129.294600, , 0.05
16, , | | |- ntoskrnl.exe!SMKM_STORE_MGR<SM_TRAITS>::SmCompressCtxProcessEntry<itself>, 63, 62.901700, , 0.02
17, , | | |- ntoskrnl.exe!ExAcquireSpinLockExclusive, 31, 31.208200, , 0.01
18, , | | |- ntoskrnl.exe!MetroHash64::Hash, 10, 10.033100, , 0.00
19, , | | |- ntoskrnl.exe!KiDpcInterrupt, 1, 1.019200, , 0.00
20, , | |- ntoskrnl.exe!SMKM_STORE_MGR<SM_TRAITS>::SmCompressCtxWorkerThread<itself>, 78, 78.477100, , 0.03
21, , | |- ntoskrnl.exe!ExAcquireSpinLockExclusive, 39, 39.068100, , 0.01
22, , | |- ntoskrnl.exe!KeWaitForSingleObject, 5, 5.051400, , 0.00
23, , |- ntoskrnl.exe!SMKM_STORE<SM_TRAITS>::SmStWorkerThread, 5420, 5,445.923200, , 1.95
24, , |- ntoskrnl.exe!SmKmStoreHelperWorker, 495, 496.265200, , 0.18
25, , |- ntoskrnl.exe!SMKM_STORE<SM_TRAITS>::SmStReadThread, 359, 360.710600, , 0.13
26, , n/a, 16760, 16,773.871200, , 6.00
Обновление: к сожалению, проблема вернулась. После перезагрузки компьютер некоторое время работает нормально, но затем появляется такая же утечка ЦП с тем же стеком
У меня была такая же проблема, она исчезла, когда я удалил один из модулей оперативной памяти. Кажется, это было неисправно. Работает Windows 7, 32-битная.
Во-первых, обзор и предоставленная информация очень информативны, однако обычно вы можете понять это с гораздо меньшим интеллектом! Я просто использовал MSCOFIG.EXE и бинарный поиск, чтобы изолировать сервис-нарушитель. Я обнаружил, что большинство подобных проблем вызвано программным обеспечением Intel. Я начинаю с отключения любой службы, которая не имеет названия компании. Затем я начинаю на службах Intel. Тогда полный бинарный поиск. Обычно для решения проблемы на чьем-то компьютере требуется не более часа. Intel никогда не была хорошей компьютерной компанией, и их программное обеспечение демонстрирует это. Посмотрим правде в глаза: архитектуре Pentium было десять лет, когда она была выпущена. Кто бы построил компьютерную архитектуру с постраничной памятью во времена VAX? Ну, я не буду утомлять вас историей. Не то чтобы я фанат AMD или Microsoft. Возможно, когда-нибудь мы вернемся к созданию настоящих компьютеров снова.
