Высокая нагрузка на процессор процессом NTOSKRNL.exe: решение проблемы
Симптомы высокой загрузки процессора ядром NTOSKRNL
В диспетчере задач системный процесс System (ntoskrnl.exe) или Системные прерывания (System Interrupts / DPCs) непрерывно нагружает процессор на 30–100%. Сервер медленно реагирует на действия администратора, интерфейс зависает, падает производительность виртуальных машин и служб.
| Симптом | Где отображается | Причина |
|---|---|---|
| System грузит 100% одного ядра CPU | Диспетчер задач | Драйвер устройства зациклился в цикле обработки прерываний ISR/DPC |
| System Interrupts > 10-20% CPU | Process Explorer | Аппаратный сбой контроллера диска, шлейфа SATA/SAS или конфликт ACPI |
| Постоянные задержки отклика интерфейса | Latencymon | Высокое время выполнения функций ACPI.sys или storport.sys |
Пошаговая диагностика и устранение нагрузки NTOSKRNL
- Выполните трассировку системных вызовов через Windows Performance Recorder (WPR):
wpr -start CPU -filemode; Start-Sleep -Seconds 30; wpr -stop C:\Logs\CPU_Trace.etl - Откройте созданный файл ETL в программе Windows Performance Analyzer (WPA): разверните график Computation > CPU Usage (Sampled) и сгруппируйте по столбцам
Process -> Module -> Function, чтобы найти имя сбойного драйвера внутриntoskrnl.exe. - Проверьте задержки прерываний утилитой LatencyMon: скачайте и запустите LatencyMon на сервере на 2-3 минуты. Изучите вкладку Drivers для выявления драйвера с наивысшим
DPC countиExecution time. - Отключите системные таймеры HPET (High Precision Event Timer) при конфликтах:
bcdedit /deletevalue useplatformclock; bcdedit /set disabledynamictick yes
Совет: Процесс System сам по себе не выполняет пользовательский код. Вся нагрузка в ntoskrnl.exe генерируется потоками сторонних аппаратных драйверов или антивирусных фильтров.
Частые вопросы (FAQ)
Почему процесс System (ntoskrnl.exe) грузит процессор?
ntoskrnl.exe выполняет задачи ядра, включая потоки драйверов устройств, обработку прерываний оборудования (ISR/DPC) и системные операции ввода-вывода (I/O).
Как процесс Process Explorer помогает найти виновный поток?
Откройте свойства процесса System в Process Explorer, перейдите на вкладку 'Threads' и отсортируйте потоки по столбцу CPU. Имя функции подскажет виновный драйвер.
Может ли поврежденный кабель диска вызывать высокую нагрузку NTOSKRNL?
Да, при сбоях кабеля контроллер диска генерирует тысячи аппаратных прерываний в секунду (Interrupt Storm), пытаясь повторить передачу секторов.
Что делать, если нагрузку создает драйвер storport.sys?
Обновите драйверы и прошивку контроллера дисков (HBA/RAID) и проверьте состояние физических накопителей на наличие бэд-блоков.