Какая нормальная загрузка проца в простое. Почему загружен процессор и как уменьшить загрузку ЦП

Когда процесс system грузит процессор это доставляет немало проблем владельцу ПК или ноутбука, находящегося под управлением ОС Windows.

Чаще всего это выражается в некритических сбоях, таких как зависание, медленная загрузка и низкая производительность.

При этом наибольшую сложность для пользователя может составить то, что еще вчера исправно работавший ПК, вдруг отказывается работать должным образом уже сегодня.

Что происходит и как это выяснить

Убедиться в том, что именно процесс system грузит процессор совсем несложно. Но осилить эту задачу может пользователь со знаниями, которые несколько превышают базовые.

С целью проверить загрузку процессора потребуется запустить Диспетчер задач .

Существует несколько путей его запуска, но самый простой из них – щелкнуть левой клавишей мыши на панели задач, вызвав меню.

Панель задач – прямоугольная область, традиционно [по умолчанию] расположенная в нижней области экрана

В появившемся меню потребуется выбрать строчку Диспетчер задач, после чего появится небольшое окошко, в каком на одной из вкладок будет отображен список запущенных процессов.

рис. 1 – внешний вид диспетчера задач в Windows 7

Его внешний вид может существенно отличаться в зависимости от версии операционной системы, к примеру, но суть остается той же.

Чем выше цифра в колонке ЦП, тем больше процесс будет нагружать аппаратную часть, что в результате сказывается на производительности.

В критических ситуациях эта цифра достигает 100% и полноценно работать на ПК становится невозможно.

Причин столь непривычной активности скрытых от пользователя процессов может быть несколько, и все они решаются разными путями.

Автоматическое обновление системы

Частая причина чрезмерной работы процесса System – автоматическое обновление системы, в том числе загрузка новых драйверов. Эта функция хоть и полезна, но удобна далеко не всегда.

Технические неисправности

Аппаратные проблемы, влияющие на взаимодействие пользователя с системой – тоже нередкий случай, с которым сталкиваются пользователи. При этом причин у этого может быть несколько:

  • Отсутствие соответствующих драйверов.
  • Некорректная работа драйвера.
  • Несовместимость аппаратной части и операционной системы.
  • Несвоевременное физическое обслуживание.

Каждая из этих причин требует более подробного рассмотрения, поскольку способ их решения не всегда один и тот же.

В первом случае процесс Система может проявлять излишнюю активность в том случае, когда пользователь обращается к устройству, которое было физически подключено к ПК, но соответствующим образом его работа не была настроена.

Чаще всего это случается с новыми комплектующими, для которых производитель в упаковке не предусмотрел диск с драйверами. В таком случае потребуется вручную его установить.

При наличии интернет-соединения сделать это просто.

У пользователя должны быть права администратора, чтобы вносить подобные изменения, поэтому если учетная запись имеет ограничения, ее потребуется сменить на Администратора.

После этого необходимо воспользоваться меню Пуск, из которого требуется запустить Панель управления . Из нее нужно запустить раздел Диспетчер устройств .

В диалоге диспетчера у устройства без драйверов будет знак [?] .

Для него правой кнопкой мыши потребуется выбрать строчку Свойства и в открывшемся диалоге на вкладке Драйвер использовать кнопки для установки.

Совет: при проблемах в работе мастера скачивайте драйвера вручную с официальных сайтов

рис. 4 – Панель управления в ОС Windows 7

Некорректная работа драйвера

Во втором случае, когда драйвер все же установлен, могут наблюдаться те же проблемы лишь потому, что не соответствует версии драйвера устройства.

В таком случае его придется обновить, используя, упомянутый выше, Диспетчер устройств.

С этой целью в окне Диспетчера потребуется выделить проблемный компонент и, используя правую кнопку мыши, запустить команду Обновить драйвер .

Эта операция, как и в предыдущем варианте, вызовет мастер настройки.

В третьем случае перегрузка процессора будет связана с несовместимостью программного и аппаратного обеспечения.

Такая ситуация может быть вызвана установкой нового непроверенного оборудования либо установкой обновления операционной системы.

В таком случае корректная работа оборудования с прошлой версией ПО будет менее проблемной.

Соответственно придется принимать радикальные меры – либо возвращать , либо менять или удалять модули, вызывающие ошибку, к примеру, сетевую или видео карту, что чаще всего встречается.

Но такие проблемы могут наблюдаться и в том случае, когда выше упомянутые аппаратные компоненты попросту не обслуживаются соответствующим образом.

Временное решение проблемы в этом случае – отключение питания ПК.

Оно позволяет снять статическое напряжение с устройства, но после не длительной эксплуатации проблема возвращается.

В таком случае поможет элементарная чистка от пыли внутренних компонентов.

рис. 5 – окно Диспетчера устройств в ОС Windows 7

Достаточно часто пользователи жалуются на 100-процентную загрузку процессора. При этом компьютер зачастую начинает «тупить» и не позволяет нормально работать. Самое интересное, что даже при переустановке Windows ситуация меняется далеко не во всех случаях. Что же делать, как быть?

Причин на самом деле может быть множество, поэтому рассмотрим наиболее вероятные.

Если вы запускаете диспетчер задач и видите какую-то программу, которая загружает процессор, немедленно ее остановите и удалите или переустановите. Скорее всего, она просто конфликтует с каким-либо другим приложением или, как вариант, это может быть вирус. Соответственно, в этом случае нужно воспользоваться антивирусом с обновленными до последней версии базами и просканировать систему. Также крайне желательно воспользоваться антивирусной утилитой типа , которая может найти такие вредоносные файлы, которые антивирус не всегда обнаруживает.

Но когда дело касается сторонних программ, все значительно проще. Куда хуже, когда загрузка связана с одним из процессов Windows. Чаще всего речь идет о , о котором я достаточно подробно рассказывал некоторое время назад.

Суть в следующем: svchost.exe позволяет службам в виде dll-файлов исполнять их код в своем адресном пространстве, поэтому в диспетчере задач пользователь может видеть несколько запущенных копий svchost.exe.

Это нормальное явление. Разумеется, за тем исключением, когда под видом процесса прячется некий вирус. Запомните, что svchost.exe никогда не запускается от имени пользователя и вы не сможете найти его в автозагрузке. Если же это произошло, то перед вами — вредоносный файл или программа, не имеющая отношения к Windows.

Допустим, что вы не обнаружили никакого вируса. Почему же происходит загрузка процессора? Чаще всего это связано с тем, что вы не установили обновления для операционной системы Windows. Как это взаимосвязано? На самом деле все просто: как только пользователь подключается к интернету, система опрашивает сервис, какие обновления появились, а какие уже установлены. Это не самый простой процесс и по сути представляет из себя сканирование системы как в случае с антивирусом, например. Поэтому сканирование будет происходить едва ли не постоянно, пока вы не соизволите установить обновления.

Что делать тем, кто не хочет устанавливать обновления? Единственный вариант — это , чего делать крайне не рекомендуется. Но если вы все-таки решились на этот шаг, то зайдите в панель управления и выберите пункт «Центр обновления Windows». В открывшемся окне нажмите «Настройка параметров».

В новом окне в подразделе «Важные обновления» выберите пункт «Не проверять наличие обновлений (не рекомендуется)», после чего нажмите ОК.

Перезагрузите компьютер, после чего зайдите в диспетчер задач и проверьте загруженность процессора.

Еще один вариант — это конфликт процесса. В данном случае речь также может идти о процессе svchost.exe, только к обновлению он не имеет никакого отношения. Бывает так, что процесс связан со службой, которую требуется отключить. В некоторых случаях помогает откат драйверов или их переустановка на более свежую версию для определенных служб.

На просторах рунета нашелся такой способ — вынимаете сетевой кабель из гнезда и вставляете обратно. Непонятно, почему он помогает, но положительных откликов немало.

Разумеется, не стоит забывать и о самом процессоре — он может банально перегреваться. В этом случае нужно узнать, в чем именно дело. Возможно, пора заменить термопасту.

  1. Откройте «Диспетчер задач». Для этого используйте сочетание нажатых клавиш ++, а затем выберите пункт «Открыть диспетчер задач».
  2. В появившемся окне выберите вкладку «Процессы» и отсортируйте список, кликнув на заголовок колонки «ЦП».
  3. Если в данный момент на вашем ПК не выполняется никаких работ, то ни один из процессов не будет иметь высокой нагрузки на Таким образом, попытайтесь найти процесс, нагружающий процессор. Если такового в списке не обнаружится, то скорее всего на вашем компьютере есть вирус, так как вредоносное ПО умеет прятаться от диспетчера задач.
  4. Запустите проверку с помощью антивирусного сканера, чтобы найти вирус.

Высокая загрузка процессора из-за программ в автозапуске


Ищем бесполезные программы, автоматически запускающиеся при запуске операционной системы

Возможно, высокую нагрузку на CPU обеспечивают программы, автоматически запускающиеся вместе с Windows.

  1. Повторите первое и второе действие из предыдущего абзаца, чтобы открыть «Диспетчер задач» на вкладке «Процессы».
  2. Найдите процессы, которые нагружают CPU особенно сильно.
  3. Нажмите клавиши +[R] и введите в открывшемся окне команду «msconfig».
  4. Перейдите на вкладку «Автозагрузка» и посмотрите, есть ли там процесс, который в настоящее время сильно нагружает
  5. Вы можете исключить его из списка программ, автоматически запускающихся при старте Windows, убрав галочку слева от названия процесса. Но будьте внимательны: из числа автоматически запускающихся программ нельзя убирать антивирусное программное обеспечение и утилиту для резервного копирования. При этом, конечно, иногда они будут отнимать значительную часть производительности вашего компьютера.

Высокая загрузка процессора из-за svchost.exe


Ищем svchost в папке AppData

Из-за неправильной установки библиотек в AppData может запуститься бессмысленный, но интенсивно нагружающий CPU процесс: svchost.exe. Не следует путать его с svchost.exe, принадлежащим непосредственно Windows.

  1. Повторите первое и второе действие из предыдущего абзаца.
  2. Если на самом верху находится процесс «svchost.exe», сделайте следующее.
  3. Нажмите клавиши +[R] и введите в открывшемся окне команду «%appdata%».
  4. Найдите в появившемся окне «Проводника» папку, которая называется «dll» и удалите, если он существует, файл «svchost.exe».
  5. В качестве альтернативы вы можете скачать программу WinFuture, так как высокая нагрузка на процессор может быть вывана ошибками в работе функции обновлений операционной системы.
  6. Помощь в этом деле предлагает утилита WinFuture Update Pack, которую вы можете скачать как в полной версии, так и в качестве апгрейда.

Крайний выход: больше производительности благодаря новому CPU


Если все вышеприведенные советы не помогли, есть вероятность, что ваш процессор просто является слишком старым и слабым для Windows 7. В этом случае вам нужно подумать над приобретением нового CPU.

  • Разумеется, это не должен быть сразу Intel i7 за 80 000 рублей. В нашем вы можете найти хорошие процессоры начального уровня, которые стоят даже меньше 2000 рублей.
  • Геймерам и пользователям, работающим с графикой, имеет смысл присмотреться к моделям среднего класса. К их числу принадлежит, например, который стоит менее 15 000 рублей.

Чтобы получить еще больше информации о работающих на вашем компьютере процессах, вы можете воспользоваться утилитой «Extended Task Manager ». Кроме того, перед тем, как приступать к поиску решения проблемы, вы должны проверить, не выбраны ли в «Параметрах электропитания» режимы «Сбалансированный» или «Экономия энергии» вместо «Высокая производительность».

Фото: компании-производители

Довольно часто происходят ситуации, когда пользователи, замечая что их компьютеры мягко говоря притормаживают, открывают диспетчер задач и видят там интересную картину. Процессор загружен на 100%, хотя при этом никаких «тяжелых» приложений не запущено. Полная загрузка процессора неизвестно чем и является причиной торможения и зависания ПК.

В данной статье мы дадим несколько дельных советов по поводу решения данной проблемы.

Причины, по которым процессор может быть загружен на 100%

Сейчас мы перечислим наиболее вероятные причины практически полной загруженности процессора при отсутствующих на первый взгляд работающих программах или играх.

  1. Работа фоновых системных процессов по установке и загрузке обновлений операционной системы, а также ее обслуживание;
  2. Вирусная активность;
  3. Физическое устаревание процессора.

Теперь о каждой более подробно.

Работа фоновых системных процессов

Операционная система Windows 7, как и любая другая периодически обновляется. Данный процесс в большинстве случаев происходит скрытно от пользователя и отвечает за него служба .

svchost грузит процессор

Также не исключены периодические проверки ОС на наличие угроз встроенными средствами защиты.

На самом деле не важно какая именно системная служба загружает процессор. Важно другое. Что обычно это длится не более пары часов. Поэтому первым делом при обнаружении повышенной активности и загрузки процессора первым делом стоит просто оставить компьютер на несколько часов чтобы дать ему возможность сделать все свои «обслуживающие дела».

Вирусная активность и вирусы — майнеры

Вторая очень распространенная причина по которой компьютер без видимых программ загружает свой процессор на 100% непонятно чем это вредоносные программы. Так, например, сейчас очень популярен так называемый вирус — майнер. Попадает он на компьютер чаще всего при скачивании и установке чего либо из интернета. А суть его работы проста — при попадании на компьютер запускаются специальные алгоритмы по добыче на вашем компьютере биткоинов и отправке результатов через интернет на определенный адрес. Таким образом на вашем компьютере злоумышленники зарабатывают, тем самым оставляя вас с тормозящим компьютером, так как его процессор загружен на 100%. При этом они маскируются под названия системных процессов!

Поэтому если по истечении нескольких часов простоя ваш компьютер так и не снизил степень загрузки процессора, советуем вам , причем лучше несколькими разными обновленными антивирусами.

Устаревание компьютера и процессора в частности

Также имеет место быть ситуация, в которой компьютер попросту устарел и его процессор попросту не справляется с фоновыми системными задачами по обслуживанию и защите операционной системы. Но это возможно только на действительно старых процессорах 10-ти и более летней давности с 1 ядром.

Вывод

Как видите возможных вариантов не так много. И метод устранения проблемы с загрузкой ЦП на 100 процентов следующий:

  1. Проверяем процессор, чтобы он не был слишком старым;
  2. Оставляем компьютер на несколько часов включенным и подключенным к интернету;
  3. Проверяем его на вирусы;
  4. Также можно открыть диспетчер задач, отсортировать процессы по нагрузке на процессор и почитать о процессе, который больше всего грузит процессор в интернете;
  5. В самом крайнем случае, если ничего не помогает — переустанавливаем Windows и сразу .

Данная короткая заметка будет посвящена теме обнаружения источника внезапной нагрузки на процессор. Нагрузка на процессор, ну и что? В процессе работы с операционной системой Windows внезапные тормоза являются штатной реакцией на загрузку нами "прожорливых" приложений, например открытие 100 вкладок в браузере Google Chrome. Тут все прогнозируемо, ибо причиной подобных проблем является работа требовательного к ресурсам приложения, которое в зависимости от специфики выполняемой задачи способно сильно нагружать процессор. Совершенно другое дело, когда нагрузка на процессор возникает сама по себе, без видимых на то причин. К примеру, в простаивающей, либо практически ничем не загруженной системе, выполняющей штатную работу, внезапно возникают подтормаживания. Подобную нагрузку можно классифицировать следующим образом:

  • Высокая нагрузка на процессор, внезапно появляющаяся и (не)исчезающая через некоторый промежуток времени;
  • Постоянная нагрузка на процессор, не меняющая своих симптомов на протяжении всего цикла функционирования операционной системы;

В описанных ситуациях не исключены варианты, когда процессор загружен на 100 процентов, либо загрузка может быть не полной. Так же можно выделить постоянную, либо интервальной загрузку. Как в описанных ситуациях определить что грузит процессор ? Что бы ответить на этот вопрос, потребуется обнаружить процесс, функционирующий в операционной системе и являющийся источником аномальной нагрузки. И в этом нам поможем специализированное программное обеспечение.

Установка WPT

Сперва нам потребуется произвести установку инструментария под названием Windows Performance Toolkit (WPT), который входит в состав Windows SDK. Процесс установки подробно описан в статье , по ней можно с легкостью установить и Windows Performance Toolkit, просто в процессе установки не забудьте отметить пункт "Windows Performance Toolkit". Помните, что лучше было бы установить дистрибутив, соответствующий разрядности Вашей платформы. По окончании процесса установки возможные рабочие каталоги инструментария:

  • C:\Program Files\Microsoft Windows Performance Toolkit ;
  • C:\Program Files (x86)\Windows Kits\8.x\ ;

Хотя пути могут в будущих дистрибутивах и измениться.

Установку на каждую новую проблемную станцию можно не производить. Достаточно лишь скопировать каталог Microsoft Windows Performance Toolkit на флешку или непосредственно на изучаемую операционную систему и пользоваться утилитами в нем как переносными приложениями. В этом случае не забывайте запуска требуемые утилиты непосредственно из каталога пакета.

Создание нагрузки

К сожалению в момент, когда я решил довести до ума собственные записи, у меня под рукой не оказалось "живого" примера по конкретной проблеме нагрузки на процессор. В своё время, когда я наблюдал подобные проблемы, я как-то не озаботился сбором материала для публикации, поэтому нам потребуется самостоятельно воссоздать ситуацию с нагрузкой, которая бы была близка к типовой рабочей.

Если у Вас уже имеется актуальная проблема, связанная с нагрузкой на процессор и требующая решения, то Вы можете пропустить данный раздел.

Для создания нагрузки мы будем использовать утилиту под названием от Sysinternals. Утилита старая, быть может уже в среде Windows 7 не совсем актуальная, однако это первая вещь, которая подвернулась мне под руку. Сразу после старта утилита запускает на выполнение первичный поток и выводит графический интерфейс пользователя, содержащий настройки:

На приведенном рисунке видно, что я отметил чек-боксы, которые требуется активировать в интерфейсе утилиты CPUStres с целью запуска максимального (4) количества потоков в рамках процесса. В дополнение можно поиграться со значениями параметров Thread Priority и Activity для каждого потока, с целью создать требуемую нагрузку. На самом деле у нас нет цели симулировать максимальную нагрузку на процессор, перед нами стоит задача сделать нагрузку ощутимой и периодической.

Мониторинг

Нагрузка создана, теперь перейдем непосредственно к сбору данных. Собственно, следующая часть ответа на вопрос что грузит процессор состоит в сборе информацию при помощи инструментария, входящего в состав WPT, или другими словами, проведении мониторинга системы на протяжении некоторого (довольно короткого) промежутка времени. Для этого мы будем использовать контроллер провайдеров и сессий трассировки под названием xperf .

Приведенную ниже команду запускать от имени учетной записи с правами локального администратора

В командной строке выполняем следующую серию команд:

xperf -on latency -stackwalk profile -buffersize 2048 -MaxFile 1024 -FileMode Circular && timeout -1 && xperf -d c:\cpu.etl

Что происходит после выполнения приведенной серии команд?

  • При помощи контроллера xperf включается сессия трассировки ядра с опцией latency (задержка). Latency это группа, которая включает некоторое количество предопределенных провайдеров ядра, в числе которых есть и профилирование, фиксирующее активность процессора каждую миллисекунду. Опция Stackwalk Profile предписывает записывать стек вызова каждый раз при возникновении события профилирования процессора.
  • Команда timeout -1 ожидает нажатия пользователем любой клавиши;
  • После нажатия клавиши, командой xperf -d c:\cpu.etl контроллер инициирует завершение сессии трассировки событий и сохраняет результаты в файл c:\cpu.etl .

Поэтому алгоритм наших действий следующий: при возникновении нагрузки на ЦП, запускаем описанную выше серию команд, ждем секунд 30 , затем жмем любую клавишу и дожидаемся окончания процесса формирования файла результатов. Поскольку объем собираемой информации может быть достаточно большим, на сборку файла потребуется некоторое время, наберитесь терпения. В общем виде, на экране монитора Вы можете наблюдать следующую картину:

Поэтому только после того, как процесс трассировки соберет файл результата и вывалится в командную строку, только после этого мы можем переходить к следующему этапу.

Ошибки

При первом запуске утилиты xperf возможно появление следующих оповещений и ошибок:

xperf: warning: This system is not fully configured for x64 stack tracing. Please modify the registry under: HKLM\System\CurrentControlSet\Control\Session Manager\Memory Management and set the value: DisablePagingExecutive (REG_DWORD) = 1 Then reboot before retrying tracing. Note: Tracing has been enabled, this is just a warning.

xperf: warning: This system is not fully configured for x64 stack tracing.

Please modify the registry under:

HKLM\System\CurrentControlSet\Control\Session Manager\Memory Management

and set the value:

DisablePagingExecutive (REG_DWORD) = 1

Then reboot before retrying tracing.

Note: Tracing has been enabled, this is just a warning.

Это предупреждение никак не влияющее на текущую сессию трассировки и может быть проигнорировано. Оно сообщает нам о том, что система не сконфигурирована должным образом для трассировки стека 64-битных процессов. Текущая настройка разрешает выгрузку страниц, содержащих исполняемый код ядра/драйверов из оперативной памяти в файл подкачки. Намекает, что неплохо было бы, в будущем, включить запрет выгрузки страниц ядра из оперативной памяти. Просто присвойте параметру значение "1" и перезагрузитесь.

xperf: error: NT Kernel Logger: Cannot create a file when that file already exists. (0xb7).

Довольно странная ошибка, в локализованной версии звучащая как "Не могу создать файл, потому что файл уже используется". Говорит о том, что в данный момент уже запущена трассировка через какое-то из системных/сторонних средств. Для решения проблемы требуется отключить трассировку, универсальным средством лечения так же является перезагрузка:)

Анализ результатов

Что грузит процессор? Мы все ближе подходим к ответу на этот вопрос. После того, как мы завершили трассировку, переходим в целевую папку, заданную нами в опциях запуска утилиты xperf (в моем случае это корень диска C:\ ) и приступаем к анализу результатов. Для этого двойным щелчком открываем получившийся отчет cpu.etl в ассоциированной утилите просмотра.

  • Для старых версий WPT это xperfview.exe ;
  • Для новых версий WPT это wpa.exe ;

Откроется основное окно программы Windows Performance Analyzer:

Вид окна от версии к версии может меняться. Нам принципиально найти график под названием CPU Usage (Sampled) или CPU Sampling by Process . Например, для старых версий, в меню Graphs ставим чек-бокс напротив опции CPU Sampling by Process . После чего в основном окне у нас появится соответствующий график.

CPU Sampling - Замеры затрачиваемого на процессы процессорного времени на протяжении всего цикла трассировки.

На этом графике мы можем наблюдать характерные всплески нагрузки, вызванные активностью утилиты CPUStres. Ось ординат данного графика отображает процент использования ЦП. На любом месте графика CPU Sampling by Process жмем правую кнопку мыши и из раскрывшегося контекстного меню выбираем пункт Summary Table . Откроется новое окно:

Открывшееся окно CPU Sampling Summary Table может выглядеть слегка иначе, поскольку в умолчальном своем состоянии, обычно, не отображает колонку Stack (Стэк). В этом случае для проведения окна к описанному виду, вызываем пункт меню Columns (Столбцы) и отмечаем чек-бокс Stack .

По желанию можно сконфигурировать путь к серверу символов Microsoft для получения подробной информации об именах вызываемых функций. Естественно, имена будут сопоставлены только с теми функциями, для которых имеются (то есть для большинства сторонних программ мы имен не получим). Для подключения символов необходимо зайти в меню Trace , далее в раздел Configure Server Paths , потом прописать в параметр _NT_SYMBOL_PATH значение srv*c:\symbols*http://msdl.microsoft.com/download/symbols . Затем, в меню Trace включить опцию Load Symbols . Но будьте осторожны, символы будут подгружаться из сети Интернет для каждого модуля, обнаруженного в стеках вызовов, объем загружаемых данных иногда бывает достаточно большим, в этом случае интерфейс может подвиснуть до окончания полной загрузки символов. Последний раз процедура заняла у меня порядка 10 минут, в течении которых окно анализатора не отвечало.

Что же мы наблюдаем в суммарной таблице? Столбец Count (Счет) отображает количество замеров, которые были произведены для каждого процесса. А столбец Weight (Вес), в свою очередь, определяет количество времени, затраченного на эти замеры (в миллисекундах). Более внимательные читатели могли заметить, что значения столбцов практически идентичны, с небольшим расхождением. Это объясняется частотой интервала замеров, равной 1 КГц (KHz). А небольшие расхождения значений Weight и Count объясняется тем, что интервалы замеров не идеально выверены. Процессы отсортированы по уменьшению значения Weight, что, в общем то, является удобным критерием сортировки, поскольку размещает процессы по убыванию количества затраченного на них времени.

Обе этих колонки (Weight/Count) отражают степень использования процессора, что, в общем то, в контексте данной задачи для нас самое важное.

Какая тут может применяться методика поиска виновника интенсивного использования процессора? Поскольку самые нагружающие процессор приложения находятся вверху и отсортированы вниз по мере убывания нагрузки, то сверху мы и будем анализировать список процессов. Для каждого процесса в столбце Stack разворачиваем все имеющиеся сгруппированные стеки вызовов значком [+], таким образом у нас должно получиться что-то вроде иерархической структуры. В развернутых стеках вызовов конкретного процесса просматриваем все расположенные там модули. Нас интересуют только те модули, у которых колонка Weight имеет большие значения и после которого в следующей строке идет резкое падение затрачиваемого процессорного времени.

Перебирая модули в стеке вызовов, в первую очередь обращайте внимание на драйвера/процессы сторонних разработчиков, поскольку именно они, с большой вероятностью, оказываются виновниками.

Руководствуясь подобной стратегией мы можем выявить виновника нагрузки на процессор. И как поступить после обнаружения источника проблемы? Для начала потребуется определить автора/принадлежность модуля, с этой целью можно задействовать любой поисковик. После того, как Вы определили принадлежность модуля, у Вас есть несколько возможных вариантов дальнейших действий:

  • С сайта производителя можно скачать последнюю версию драйвера/программы и обновиться.
  • Если первый пункт не помог, можно попробовать откатиться к более ранней версии драйвера.
  • Если более ранней версии нет, то уж в самом крайнем случае можно вовсе удалить драйвер/программу.

Выводы

Таким образом мы ответили на вопрос о том, что грузит процессор. Но для чего нужны все эти инструменты из комплекта Windows Performance Tools, ведь мы могли бы просто вызвать Диспетчер задач в момент нештатной нагрузки и отследить источник проблемы использования центрального процессора (ЦП). Да, подобный подход действительно актуален, но только для приложений! А описанный в данной статье метод с использованием утилит комплекта WPT позволяет находить массу дополнительной информации по сбою:

  • источник проблемы среди модулей режима ядра (процессов/драйверов), выполняющихся в контексте процесса System ;
  • источник проблемы среди процессов сервисов (служб), группирующихся в рамках единых процессов svchost.exe ;
  • видеть стеки вызовов модулей, что намного глубже позволяет погрузиться в изучение сбоя.