Я заметил, что с некоторого времени моя система зависает, и это, вероятно, вызвано высокой загрузкой ЦП, вызванной системным процессом.
Все приложения, которые я запускаю, это Skype, TeamSpeak и Chrome, так что они определенно не должны потреблять так много ресурсов процессора.
Саму проблему и запущенные процессы вы можете увидеть на скриншоте ниже:
Иногда загрузка ЦП достигает 90%, но в среднем она составляет 40–65%.
Параметры моего ПК:
- Windows 8 (клиентская предварительная версия)
- Intel Core i3 - 2350M
- 8 ГБ ОЗУ
Буду признателен за любую попытку помощи! С уважением.
--ОБНОВЛЯТЬ--
Так как пользователь ниже опубликовал отличный ответ, я заметил, что процесс, который потребляет больше всего ресурсов ЦП в системе, называется Arthurx.sys
, простой гугл говорит, что это драйвер TPLink (адаптер Wi-Fi, который я купил около 2 недель назад!) драйверы были установлены из Windows MSDN, но также пробовал устанавливать драйверы с прилагаемого компакт-диска, но это не помогает. С момента запуска системы он использует всего около 5% ЦП, но после 2-4 часов работы это растет и достигает 40-60% использования ЦП.
Имя устройства:TPLink WN722N
решение1
Введение
Высокая загрузка ЦП процессом «Система» часто может быть вызвана проблемой драйвера оборудования (ошибка, старая версия, несовместимость и т. д.).
Процесс System загружает (или размещает) несколько драйверов оборудования от разных поставщиков, которым требуется более высокий уровень доступа к памяти. Вот почему диагностика конкретного виновника может потребовать немного детективной работы, как описано ниже.
Диагностика проблемы
Для диагностики проблем с загрузкой ЦП следует использовать трассировку событий для 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 со сборкой 15086.
(все остальные записи можно не выбирать)
Теперь запустите WPRUI.exe
, выберите First Level
, в разделе «Ресурс» выберитеиспользование процессораи нажмите наначинать.
Теперь запишите 1 минуту использования процессора. Через 1 минуту нажмите наСохранять.
Сейчаспроанализируйте созданный ETL-файл с помощью Windows Performance Analyzerперетащив CPU Usage (sampled)
график analysis pane
и упорядочив столбцы, как показано на рисунке:
Внутри WPA,загрузить отладочные символыи разверните стек процесса SYSTEM. В этой демонстрации использование ЦП происходит от драйвера nVIDIA.
В следующей демонстрации загрузка ЦП осуществляется драйвером сетевой карты Realtek:
Когда вы видите такие звонки, какntoskrnl.exe!ВиKeTrimWorkerThreadRoutine, ntoskrnl.exe!МмВерификаторTrimMemory, ntoskrnl.exe!ВерификаторKeLeaveCriticalRegion, это означает, что у вас включена проверка драйверов. Это также сильно снижает производительность и приводит к высокому использованию СИСТЕМЫ.Отключить проверку драйверови перезагрузитесь.
В этой демонстрации драйвер iai2ce.sys
(драйвер контроллера Intel Serial IO GPIO) вызывает следующее:
В этом примере загрузка ЦП берется из файла, rtsuvc.sys
который, по-видимому, являетсяRealtek UVC webcam Driver
Эта демонстрация показывает, что драйвер Bitdefenderignis.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 > ВыполнитьFullMemoryDiagnostic.
В этом случае загрузка ЦП, по-видимому, связана с Data Deduplication
функцией ( dedup.sys!DdpPostCreate
) Windows Server:
В этой демонстрации загрузка ЦП вызвана драйвером карты WIFI.athrx.sys
Если вы видите это, поищите обновление драйвера.
В следующей демонстрации задействован драйвер Citrix:
Поэтому обратитесь к своему ИТ-специалисту, чтобы узнать, как решить проблемы с Citrix.
В этой демонстрации функция usbhub.sys!UsbhPortRecycle
вызывает загрузку ЦП:
Изменение скорости портов USB2.0 на 1.1или подключение USB-накопителей к другим портам USB 2.0 помогло некоторым пользователям.
В этом случае небольшое количество ресурсов SYSTEM используется драйвером Acronis tdrpm251.sys
:
В этой демонстрации загрузка ЦП ntoskrnl.exe!KeAcquireSpinLockRaiseToDpc
и ntoskrnl.exe!KeReleaseSpinLock
.
поэтому водитель используетСпинлокиочень сильно. Отключите некоторые устройства/драйверы, пока не увидите то, которое вызывает это.
В этом случае загрузка ЦП вызвана драйверомL1C62x64.sys
Это qualcomm atheros AR8171/8175 PCI-E gigabit Ethernet
драйвер. Так что обновите драйвер, если увидите его в стеке.
Здесь загрузка ЦП происходит при сканировании файла хоста (netbt.sys!DelayedScanLmHostFile)
Чтобы избежать такого использования, убедитесь, что ваш файл hosts не слишком большой.
В этом случае данные об использовании ЦП взяты SRTSP64.SYS
из Symantec.
Обновите используемый вами продукт Symantec до последней версии.
Здесь загрузка ЦП осуществляется драйвером графического процессора AMD (atikmdag.sys)
Если вы видите это, перейдите на сайт AMD и скачайте последнюю версию драйвера для вашей видеокарты AMD.
Здесь драйверы TMXPFlt.sys и VsapiNt.sys вызывают высокую загрузку ЦП.
Насколько я вижу, эти файлы являются частью Trend Micro AV suite. Обновите инструмент или удалите его.
В этом примере загрузка ЦП определяется функциейntoskrnl.exe!MmGetPageFileInformation
Эта функция получает информацию о файле подкачки.
Описание процедуры: Эта процедура возвращает информацию о текущих активных файлах подкачки.
Отключите файл подкачки, перезагрузите и включите его снова и посмотрите, исправит ли это проблему. Также, удалите службы Intel (например, Intel Content Protection HECI Service)кажется, исправил это для пользователя.
Здесь вы можете видеть, что драйвер 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 привод на Caddy для установки SSD рядом со старым HDD
- отключить некоторые устройствакак посоветовал этот пользователь
- если вы используете чипсет Intel, попробуйте установитьТехнология хранения Intel Rapid (RST)для замены стандартного драйвера AHCI из Windows. Это такжекажется, помогло.
- ПользовательШайна разобрался, что использование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.
Пользователь @stevemidgley выявил новую проблему с более высокой загрузкой ЦПWdf01000.sys!FxSystemWorkItem::_WorkItemThunk
Здесь вы можете увидеть драйвер UDE.sys, вызывающий эту ошибку.
В символьном хабе
Я вижу, что он принадлежит драйверу модема, а данные трассировки PNP показывают Fibocom L850-GL
(LTE-модем) как возможное устройство:
Решение — отключить модем и составное USB-устройство в диспетчере устройств.
Пользователь@фаджарпри условии следующего случая:
Здесь загрузка процессора невелика, но если изменить вид на использование DPC/ISR
вы можете видеть, что драйвер avgNetHub.sys вызывает большое использование DPC
Название указывает на то, что этот драйвер является частью антивирусного ПО AVG. Так что обновите ПО или удалите его, если вы видите это в своем следе.
решение2
Это может быть вызвано неисправным драйвером или другим модулем, загруженным системой. Чтобы заглянуть внутрь процесса System, вы можете использовать такой инструмент, какОбозреватель процессов.
Загрузите и запустите его, затем выберите процесс «Система», щелкните правой кнопкой мыши и выберите «Свойства»:
Перейдите на вкладку «Потоки» (игнорируйте диалоговое окно, в котором упоминаются символы):
Это покажет, какой файл использует чрезмерную загрузку ЦП, и на основе этого вы сможете попытаться диагностировать его.
Однако, как уже отмечалось в комментариях, вам действительно нужно как можно скорее отказаться от предварительных версий!
решение3
Примечание о загрузке отладочных символов для добавления впревосходный ответ magicandre1981: если загрузка символов в Windows Performance Analyzer работает правильно, после установки флажкаТрассировка > Загрузка символовВы должны увидеть полосу прогресса вверху сЗагрузка символовкоторый показывает имена файлов рядом с ним и занимает несколько минут для завершения. Также вы должны увидеть много строк, подобных приведенным ниже, в диагностической консоли:
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
Если вы не видите ни одного из них, загрузка отладочных символов, вероятно, не сработала, и вы не сможете правильно интерпретировать свою трассировку.
В моем случае изначально загрузка отладочных символов не работала. Я исправил это следующим образомэти инструкции:
Выясните, какую версию Windows Performance Toolkit вы используете — x86 или x64.
Это легко сделать на сборках 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
ОтвечатьДобавлено@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
Обновлять:К сожалению, проблема вернулась. После перезагрузки ПК некоторое время работает нормально, но затем появляется та же утечка ЦП с тем же стеком