Високо използване на процесора от системния процес (Ntoskrnl.exe) на Windows

На един от компютрите с току-що инсталиран Windows 10, потребителят започна да се оплаква от постоянните закачвания и бавната работа на ОС. В диспечера на устройства можете да видите, че се използват повече от 50% от ресурсите на процесора система (ntoskrnl.exe). В тази статия ще се опитам да опиша основните методи за диагностициране на високо използване на процесора чрез различни процеси и методи за идентифициране на проблемния компонент на Windows.

Ситуацията, когато системният процес изразходва повече от половината от процесорните ресурси на системата, не е нормална. Самият файл Ntoskrnl.exe е изпълним файл на ядрото. Това е основният процес на системата. В рамките на ядрото на ОС се стартират системни драйвери на устройства, които най-вероятно са източникът на проблема (не всички драйвери са адекватно тествани от хардуерни разработчици).

По правило възниква проблем с теч в кода на драйвера и високо натоварване на процесора, паметта или диска след инсталиране на нов хардуер, инсталиране на нова версия на драйвера (включително автоматични актуализации на драйвери, които могат да бъдат деактивирани) или след надстройка на Windows.

съвет. В някои случаи високото натоварване на процесора и паметта може да бъде причинено от процеса на системата и компресирана памет.

За да разберете кой конкретен драйвер или модул причинява голямо натоварване на процесора, можете да използвате безплатната програма Изследовател на процеси. Изтеглете и стартирайте с права на администратор.

В списъка на изпълняваните процеси намерете процеса система, щракнете с десния бутон върху него и отворете неговите свойства Имоти.

Отидете в раздела Теми. Сортирайте списъка с модули, заредени от ядрото, по степента на използване на процесора (колона на процесора). На линия Стартов адрес се посочва името на функцията или драйвера, причиняващ високото натоварване (екранната снимка не е от проблемната система).

Също така, за да идентифицирате драйвера, който причинява високо натоварване на процесора, можете да използвате безплатната програма Microsoft - kernrate.exe (Kernrate Viewer). Включена помощна програма WDK (Комплект за устройства с Windows). След като инсталирате WDK, можете да намерите помощната програма в директорията ... \ Tools \ Other \ amd64.

Стартирайте помощната програма kernrate.exe без аргументи и изчакайте известно време, докато се събират данните (10-15 минути), след което прекъснете полезността, като натиснете клавиша Ctrl-C: Вижте списъка с модули в секцията Резултат за Kernel Mode.

Както можете да видите, в нашия пример модулът предизвиква голямо натоварване на процесора b57nd60x. С помощта на Google или помощната програма sigcheck (вижте примера) можете да определите, че драйверът на мрежовата карта на драйвер на Broadcom NetXtream Gigabit Ethernet NDIS6.0 причинява проблема.

Освен това можете да анализирате използването на процесора по време на зареждане на системата, като използвате инструментариума на Windows Performance Toolkit (WPT). Трябва да инсталирате компонента и да започнете да събирате данни с помощта на графичната конзола Windows рекордер за перфоманс (Триъгълник на първо ниво + използване на процесора -> Старт)

Или така:

xperf -on latency -stackwalk profile -buffersize 1024 -MaxFile 256 -FileMode Circular && timeout -1 && xperf -d cpuusage.etl

съвет. Този метод е удобен за използване, ако след зареждане системата напълно замръзне и е просто невъзможно да се работи в нея. Най-вероятно ще намерите и тази статия полезна за диагностициране на дълъг старт на Windows.
Полученият файл трябва да бъде запазен и отворен в WPA. Разширете стека на системния процес. В този пример се вижда, че голямо натоварване на процесора причинява драйвера athrx.sys (Wi-Fi адаптер за безжична мрежа на Atheros).


И така, проблемният драйвер е открит. Какво да правя след това?

За да разрешите проблема, трябва да опитате да инсталирате по-нова (или стара) версия на драйвера или напълно да изключите хардуера, ако проблемът се наблюдава при всички версии на драйвера. Обновеният драйвер може да бъде допълнително проверен със стрес тест с помощта на Driver Verifier.