Высокая загрузка CPU почти всегда имеет конкретную причину. Задача — найти её, а не перезагружаться в надежде, что пройдёт само.
Что решает эта инструкция
Последовательность действий, которая выводит на конкретный процесс или драйвер, нагружающий процессор. Включая случаи, когда виновник прячется за системными именами вроде svchost.exe.
Когда это нужно
- Система заметно тормозит, вентилятор работает постоянно
- Ноутбук быстро разряжается без видимой нагрузки
- На сервере выросло время отклика приложений
Шаг 1: диспетчер задач
Открывается по Ctrl + Shift + Esc.
- Вкладка Процессы, сортировка по колонке ЦП
- Включите Вид → Группировать по типу — станет видно, системный это процесс или пользовательский
- На вкладке Подробности добавьте колонку Командная строка (правый клик по заголовку → Выбрать столбцы)
Командная строка — ключевая деталь. Она отличает один svchost.exe от другого и показывает, какие аргументы получил процесс.
Шаг 2: PowerShell для точных цифр
Диспетчер задач усредняет показания. Для точечного замера:
Get-Process |
Sort-Object CPU -Descending |
Select-Object -First 10 Name, Id, CPU, WorkingSet |
Format-Table -AutoSize
Свойство CPU здесь — это суммарные секунды процессорного времени с момента запуска процесса, а не текущий процент. Долгоживущий процесс наберёт много даже при слабой нагрузке.
Текущая загрузка в процентах — через счётчики производительности:
Get-Counter '\Process(*)\% Processor Time' -SampleInterval 2 -MaxSamples 3 |
Select-Object -ExpandProperty CounterSamples |
Where-Object { $_.CookedValue -gt 5 -and $_.InstanceName -ne '_total' -and $_.InstanceName -ne 'idle' } |
Sort-Object CookedValue -Descending |
Select-Object InstanceName, CookedValue -First 10
Три замера с интервалом в две секунды дают более надёжную картину, чем один снимок.
Совет. Значения CookedValue могут превышать 100 — счётчик считает по всем ядрам. На 8-ядерной машине максимум будет 800.
Шаг 3: разобраться с svchost.exe
Это контейнер для системных служб, само имя ничего не говорит. Нужно узнать, какие службы внутри конкретного PID:
$pid_to_check = 1234
Get-CimInstance Win32_Service |
Where-Object { $_.ProcessId -eq $pid_to_check } |
Select-Object Name, DisplayName, State
Частые виновники: wuauserv (Центр обновления), BITS (фоновая передача), SysMain (Superfetch), WSearch (индексация поиска).
Шаг 4: проверить прерывания
Если высокую нагрузку показывает System Interrupts или Система и сжатая память — дело в драйвере или железе, а не в программе.
Get-Counter '\Processor(_Total)\% Interrupt Time' -SampleInterval 1 -MaxSamples 5
Устойчивое значение выше 10% указывает на проблемный драйвер. Дальше нужен анализ через утилиту LatencyMon или проверка свежести драйверов сетевой карты и чипсета.
Проверка результата
После устранения причины сравните среднюю загрузку:
(Get-Counter '\Processor(_Total)\% Processor Time' -SampleInterval 1 -MaxSamples 10).CounterSamples |
Measure-Object CookedValue -Average |
Select-Object -ExpandProperty Average
В покое ожидаемое значение — единицы процентов.
Возможные проблемы
Нагрузка скачет, процесс поймать не успеваю
Пишите замеры в файл и разбирайте потом:
Get-Counter '\Process(*)\% Processor Time' -SampleInterval 5 -MaxSamples 60 |
Export-Counter -Path "$env:TEMP\cpu.blg" -Force
Пять минут наблюдения обычно хватает, чтобы поймать периодический всплеск.
Виновник — антивирус
Проверьте исключения Defender. Сканирование каталогов со сборкой проектов или базами данных даёт постоянную нагрузку:
Get-MpPreference | Select-Object -ExpandProperty ExclusionPath
Высокая нагрузка сразу после установки обновлений
Windows доиндексирует файлы и пересобирает кэши. Это нормально в течение получаса-часа после крупного обновления.
Осторожно. Не отключайте службы вслепую ради снижения нагрузки. Отключение wuauserv оставит систему без обновлений безопасности, а WSearch сломает поиск в Outlook и проводнике.
Итог
Порядок: диспетчер задач с колонкой командной строки → Get-Counter для точных процентов → расшифровка svchost через Win32_Service. Если нагрузку даёт System Interrupts, причина в драйвере и лечится обновлением, а не настройкой служб.