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

Инструкция

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

Обратитесь к специалисту, если проблемы с процессором возникают неоднократно.

Источники:

  • как уменьшить загрузку цп в 7

Каждый раз при загрузке операционной системы автоматически запускается утилита Chkdsk. Эта утилита сканирует ваш жесткий диск на наличие ошибок, возможных сбоев в работе файловой системы. Конечно, ничего плохого в этом нет, но скорость загрузки системы при этом снижается. Между тем эту процедуру можно отключить, тем самым повысив скорость загрузки ОС.

Вам понадобится

  • - компьютер с ОС Windows.

Инструкция

Для отключения сканирования системного диска проделайте следующие шаги. Нажмите «Пуск». Выберите «Все программы», затем - «Стандартные программы». Среди стандартных программ есть «Командная строка». Запустите ее.

Дальше в командной строке введите Chkntfs /X C, где С является буквой системного диска. Если ваш системный диск имеет другую букву, то, соответственно, ее и нужно прописать. После ввода команды нажмите клавишу Enter. Закройте командную строку. Теперь автоматическая проверка системного раздела отключена. Таким же способом можно отключить автоматическую проверку других разделов жесткого диска. Просто в конце команды следует написать букву раздела винчестера, для которого вы хотите отключить сканирование.

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

Кликните по стрелочке, которая находится напротив названия этого раздела. Повторите процедуру возле подраздела SYSTEM. Таким образом открывайте разделы в таком порядке: CurrentControlSet/Control/Session Manager. Session Manager открывать не нужно, выделите его с помощью левого щелчка мышки.

После выделения последнего раздела в правом окне будут доступны ветки для редактирования. Найдите среди них ветку под названием BootExecute. Щелкните по ней дважды левой кнопкой мышки. Теперь ее можно отредактировать. Все, что вам нужно, - это перед звездочкой добавить параметр /K:C. В конечном итоге отредактированная ветка будет выгладить так: autocheck autochk /k:C. Сохраните изменения. После этого проверка диска будет отключена.

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

Инструкция

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

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

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

Симптомы высокой загруженности ЦП

Ниже перечислены распространенные симптомы высокой загрузки ЦП. Если присутствует любой из описанных признаков, для устранения неполадки выполните действия, описанные в данном документе.

  • Команда show processes cpu выдает высокое значение в процентах
  • Медленная работа
  • Службы маршрутизатора не отвечают, например:
    • задержка ответа Telnet или невозможно получить доступ к маршрутизатору по протоколу Telnet
    • медленный ответ на консоли
    • медленный ответ на запрос команды ping или вообще нет ответа
    • маршрутизатор не отправляет обновления маршрутизации другим маршрутизаторам

Первоначальное устранение неполадок

Как только будет замечен какой-нибудь из указанных выше симптомов, выполните следующее:

  • Проверьте наличие проблем, связанных с безопасностью. Как правило, высокая загрузка ЦП бывает обусловлена именно проблемами такого рода, например функционированием вредоносной программы (червя или вируса) в сети. Если последние изменения в сети производились давно, это наиболее вероятная причина высокой загрузки ЦП. Обычно для ограничения негативных последствий этой проблемы достаточно добавить строки в списки доступа.
  • Убедитесь, что все команды отладки в маршрутизаторе выключены, выполнив команду undebug all или no debug all .
  • Удается выполнить команды show на маршрутизаторе? Если да, немедленно начните собирать дополнительные сведения, используя эти команды.
  • Маршрутизатор недоступен? Удается воспроизвести эту проблему? Если да, выключите и включите маршрутизатор, а перед воспроизведением проблемы настройте команду scheduler interval 500 . В результате выполнение процессов с низким приоритетом будет запланировано с интервалом в 500 миллисекунд, благодаря чему появится время для запуска некоторых команд, даже если ЦП используется на все 100%. На серий 7200 и 7500 используйте команду scheduler allocate 3000 1000.
  • Проявляет маршрутизатор признаки высокой загрузки ЦП в течение кратких и непрогнозируемых периодов? Если да, регулярно собирайте выходные данные команды show processes cpu , которые отображают причину высокой загрузки ЦП, если она вызвана прерываниями или отдельным процессом.
  • Выяснение причин и решение проблемы

Используйте команду show processes cpu , чтобы определить, чем вызвана высокая загрузка ЦП, прерываниями или процессами.

Высокая загруженность ЦП процессами

Определите процесс, чрезмерно использующий ЦП. Необычная активность, относящаяся к процессу, приводит к сообщению об ошибке в журнале. Таким образом, выходные данные команды show logging exec следует проверить, в первую очередь, на наличие любых ошибок, относящихся к процессу, использующему большое количество циклов ЦП.

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

  • Все журналы регистрации, за исключением журнала регистрации сведений для буферов, должны быть отключены или уровень важности протоколируемых в них сведений должен быть понижен с 7 (отладка) до 6 (информационный) или ниже при помощи соответствующей команды настройки logging destination [ уровень важности ] . Сведения о включенных журналах регистрации и уровнях важности протоколируемых в них сведений содержатся в строках заголовка выходных данных команды show logging exec.
  • Размер буфера регистрации необходимо увеличить, чтобы он вмещал всю необходимую информацию. Дополнительные сведения см. в описании команды глобальной настройки logging buffered .
  • Чтобы облегчить восприятие и понимание отладки, следует включить временные отметки в миллисекундах, а также дату и время. Дополнительную информацию см. в описании команды глобальной настройки service timestamps .

Команды для получения дополнительной информации

Эти команды позволяют получить дополнительные сведения о проблеме:

  • show processes cpu
  • show interfaces
  • show interfaces switching
  • show interfaces stat
  • show ip nat translations
  • show align
  • show version
  • show log

Если маршрутизатор совершенно недоступен, сначала выключите и включите его. Затем периодически собирайте выходные данные вышеуказанных команд, за исключением команды show log , результаты выполнения которой должны регистрироваться на сервере системного журнала. Выходные данные следует собирать с интервалом 5 минут. Сбор данных можно также выполнить с помощью HTTP или SNMP.

Команда show processes cpu

Это пример заголовка команды show processes cpu :

CPU utilization for five seconds: X%/Y%; one minute: Z%; five minutes: W% PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process

В следующей таблице описаны поля этого заголовка:

X Y Z W PID Runtime Invoked uSecs 5Sec 1Min 5Min TTY Process

Поле

Описание

Среднее суммарное использование за последние пять секунд (прерывания + процессы)
Среднее использование прерываниями за последние пять секунд¹
Среднее суммарное использование за последнюю минуту²
Среднее суммарное использование за последние пять минут²
Идентификатор процесса
Время ЦП, использованное процессом (в миллисекундах)
Число вызовов процесса
Время ЦП в микросекундах для каждого вызова процесса
Использование ЦП заданием за последние пять секунд
Использование ЦП заданием за последнюю минуту2
Использование ЦП заданием за последние пять минут2
Управляющий процессом терминал
Имя процесса

¹Использование ЦП на уровне процесса = X - Y
²Значения соответствуют не арифметическому среднему, а экспоненциально затухающему среднему, поэтому последние значения больше влияют на вычисляемое среднее.

Примечание: Суммарное использование ЦП не следует интерпретировать как показатель способности маршрутизатора коммутировать большее число пакетов. В маршрутизаторах Cisco 7500 универсальные интерфейсные процессоры (VIP) и процессоры маршрутизации и коммутации (RSP) не сообщают о линейном использовании ЦП. Почти половина мощности коммутации в пакетах в секунду реализуется после 90-95% загрузки ЦП.

Команда show interfaces switching

Эта команда используется для определения активных путей коммутации на интерфейсах

Ниже приведен пример выходных данных команды show interfaces switching для одного интерфейса:

RouterA#show interfaces switching

Throttle count 0
Drops RP 0 SP 0
SPD Flushes Fast 0 SSE 0
SPD Aggress Fast 0 0
SPD Priority Inputs 0 Drops 0
Protocol Path Pkts In Chars In Pkts Out Chars Out
Other Process 0 0 595 35700
Cache misses 0
Fast 0 0 0 0
Auton/SSE 0 0 0 0
IP Process 4 456 4 456
Cache misses 0
Fast 0
Auton/SSE 0 0 0 0
IPX Process 0 0 2 120
Cache misses 0
Fast 0 0 0 0
Auton/SSE 0 0 0 0
Trans. Bridge Process 0 0 0 0
Cache misses 0
Fast 11 660 0 0
Auton/SSE 0 0 0 0
DEC MOP Process 0 0 10 770
Cache misses 0
Fast 0 0 0 0
Auton/SSE 0 0 0 0
ARP Process 1 60 2 120
Cache misses 0
Fast 0 0 0 0
Auton/SSE 0 0 0 0
CDP Process 200 63700 100 31183
Cache misses 0
Fast 0 0 0 0
Auton/SSE 0 0 0 0

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

Process Cache misses Fast Auton/SSE

Поле

Описание

Обработанные пакеты. Это могут быть пакеты, предназначенные для маршрутизатора, или пакеты, для которых не было записей в кэш-памяти быстрой коммутации.
Пакеты, для которых не было записей в кэш-памяти быстрой коммутации. Будет обработан первый пакет для этого пункта назначения (или поток – зависит от типа настроенной быстрой коммутации). Все последующие пакеты будут быстро коммутироваться, если только быстрая коммутация не будет специально отключена на исходящем интерфейсе.
Пакеты, обработанные быстрой коммутацией. Быстрая коммутация включена по умолчанию.
Пакеты, обработанные автономной коммутацией; коммутацией с помощью кремниевых процессоров или распределенной коммутацией. Доступны только на маршрутизаторах Cisco серии 7000 с процессором коммутации или кремниевым процессором коммутации (для автономной коммутации или коммутации с использованием кремниевых устройств соответственно), либо на маршрутизаторах Cisco серии 7500 с процессором VIP (для распределенной коммутации).

Команда show interfaces stat

Эта команда является объединенной версией команды show interfaces switching. Ниже приведен пример выходных данных для одного интерфейса:

RouterA#show interfaces stat

Ethernet0 Switching path Pkts In Chars In Pkts Out Chars Out
Processor 52077 12245489 24646 3170041
Route cache 0 0 0 0
Distributed cache 0 0 0 0
Total 52077 12245489 24646 3170041

Выходные данные команды show interfaces stat на разных платформах отличаются: они зависят от доступных и настроенных коммутируемых путей.

Команда show ip nat translations

Команда show ip nat translations служит для отображения активных на маршрутизаторе трансляций преобразования сетевых адресов (NAT). Каждая активная трансляция генерирует прерывания ЦП и влияет на суммарное использование ЦП маршрутизатора. Большое число трансляций может повлиять на производительность маршрутизатора.

Ниже приведен пример выходных данных команды show ip nat translations:

router#show ip nat translations Pro

Inside global Inside local Outside local Outside global
--- 172.16.131.1 10.10.10.1 ---

Команда show align

Эта команда доступна только на платформах на базе RISC-процессоров с сокращенным набором команд. На этих платформах ЦП может корректировать нарушения выравнивания для чтения и записи в памяти. Ниже приведен пример выходных данных:

Alignment data for:
4500 Software (C4500-DS40-M), Version mis-aligned RELEASE SOFTWARE (fc1)
Compiled Tue 31-Mar-98 15:05 by jdoe

Total Corrections 33911, Recorded 2, Reads 33911, Writes 0

Initial Initial
Address Count Access Type Traceback
40025F4D 15561 16bit read 0x606F4A7C 0x601C78F8 0x6012FE94 0x600102C0
40025F72 18350 32bit read 0x606FB260 0x6013113C 0x600102C0 0x60010988

Команда show version

В целях отслеживания проблем высокой загрузки ЦП, важной частью выходных данных этой команды является версия программного обеспечения Cisco IOS, платформа, тип ЦП и время работы маршрутизатора. Щелкните эту ссылку, чтобы ознакомиться с подробным описанием команды show version.

Команда show log

Эта команда отображает содержание сообщений журнала регистрации сведений о буферах.

Есть вопросы?
Обращайтесь в "Аквилон-А", чтобы узнать подробности и получить именно то, что вам требуется.

Svchost.exe (сервис-хост) – файл и процесс операционных систем семейства Windows. Его задача – загружать и выполнять внутренние службы из динамически подключаемых библиотек (файлов с расширением.dll), обеспечивая работоспособность практически всех компонентов операционной системы. Образно говоря, svchost.exe – это печень, почки и легкие Windows, без которых ее существование немыслимо. Но почему эти «жизненно важные органы» иногда создают нам столько проблем?

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

Причины загрузки системы процессом svchost

Поскольку svchost.exe обслуживает значительную часть системных служб, причин интенсивной нагрузки на процессор может быть масса. Вот самые распространенные из них:

  • Вирусное заражение.
  • Слишком высокая загруженность сети, например, множеством открытых слотов в uTorrent.
  • Ошибки драйверов устройств (звукового, сетевого и т. д.), так как последние тесно взаимодействуют с системными службами.
  • Повреждение файлов операционной системы (в частности, самого сервис-хоста и различных динамических библиотек).
  • Ошибки системных служб.
  • Неисправность аппаратной части ПК.

Иногда подобное бывает следствием неудачной пиратской активации Windows (не все активаторы одинаково полезны) и взлома программ.

Как определить, какая служба грузит сервис-хост

Для просмотра служб, работающих в грузящем хост-процессе, подойдет встроенный в систему или альтернативный диспетчер задач. В первом интересующая нас информация содержится в разделе «Процессы Windows ». Каждый хост-процесс отображен в нем под именем «Узел службы ».

В зеленой рамке на скриншоте показан список служб одного процесса svchost.

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

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

  • Откройте приложение «Службы » (кнопка открытия находится внизу одноименной вкладки диспетчера задач).

  • Отключите первую службу из списка грузящего сервис-хоста: откройте через меню правой кнопки ее свойства и выберите из списка «Тип запуска » «Вручную » или «Отключена ».

  • Перегрузите компьютер. Если проблема не ушла – снова запустите эту службу и отключите следующую.

Проблемная служба обнаружена, что дальше?

Дальше действуйте по ситуации. Если сбой вызывает второстепенный компонент, например, Superfetch (довольно часто создает проблему пользователям Windows 8 и 10), просто оставьте его отключенным. Если служба связана с оборудованием (аудио, сеть и т. д.) – попробуйте обновить или откатить драйвер устройства. При проблемах с Центром обновления Windows (часто встречается на «семерках» и XP), в 90% случаев помогает отключение проверки обновлений. Однако полный отказ от установки обновлений системы – это большая брешь в безопасности Виндовс, поэтому лучше переключите ее в ручной режим.

Если svchost начал грузить процессор после установки обновлений Windows, приложений или драйверов, или деинсталлируйте источник сбоя.

В отдельных случаях помогает очистка папки \Windows\Prefetch , где хранятся файлы трассировки Префетчера – системного компонента, который ускоряет загрузку системы и программ.

Как разгрузить сеть

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

Снизить загрузку процессора сетевыми компонентами помогает:

  • уменьшение количества одновременных закачек и раздач торрентов;
  • запрет доступа к Интернету программам, для которых это не обязательно (особенно если их много);
  • завершение работы сетевых программ, когда они не используются;
  • очистка временных папок (temp) – в них могут находиться недокачанные файлы, которые приложения-качалки пытаются догрузить до конца;
  • проверка антивирусом на наличие сетевых червей;

Еще одна «болезнь» довольно продолжительное время терзала Виндовс 7. При ней загруженность ЦП процессом svchost достигала 100% и снижалась только при отключении сети. Причина крылась в безудержном «размножении» виртуальных туннельных адаптеров Microsoft 6to4 , которых иногда создавалось несколько сотен.

Чтобы проверить, не ваш ли это случай, откройте диспетчер устройств, зайдите в меню «Вид » и отметьте флажком «Показать скрытые устройства ». Следом разверните список сетевых адаптеров. Все клоны «Microsoft 6to4», если есть, находятся там.

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

После распаковки devcon на жесткий диск запустите от имени администратора командную строку и выполните инструкцию C:\devcon.exe remove *6to4* (вместо C:\ укажите ваш путь к devcon.exe). Чтобы ситуация не повторялась, обновите операционную систему.

Сегодня проблема с адаптерами 6to4 уже устранена разработчиками и встречается только у тех, кто не устанавливает обновления Виндовс.

А если это вирус? Как отличить вредоносный svchost от нормального

Вредоносная программа может:

  • Создать на жестком диске свою копию под именем svchost.exe, которая будет размещаться где угодно, кроме каталога \Windows\System32 , поскольку в нем находится одноименный системный файл. То есть, замаскироваться под системный процесс.
  • Внедрить свои динамические библиотеки в один из легальных хост-процессов.
  • Модифицировать (пропатчить) системный файл svchost.exe, поместив в его тело собственный исполняемый код.

Некоторых пользователей пугает слишком большое, по их мнению, количество запущенных хост-процессов. На самом же деле этот показатель ни о чем плохом не говорит. Число процессов svchost в нормально работающей системе составляет 8-9 и больше. В каждом из них выполняется одна или несколько служб – это видно в диспетчере задач. Службы разделены на группы в зависимости от нужного им уровня доступа к ресурсам, поэтому процессов несколько.

Большинство нормальных хост-процессов выполняется от имени системы, network service и local service. До выпуска Windows 8 любой сервис-хост, запущенный от имени пользователя, автоматически признавался вирусом, но сейчас это справедливо только для Windows 7 и ее предшественниц. В «восьмерке» и «десятке» один сервис-хост, работающий от имени пользователя, является нормой.

На то, что хост-процесс запущен или используется вирусом, указывает хотя бы один из признаков:

  • Файл хост-процесса находится НЕ в папке \Windows\System32.
  • В процессе работает неизвестная служба или в него загружена несистемная библиотека (.dll).

  • На Windows XP-7 хост-процесс запущен от имени пользователя, а на Windows 8-10 присутствует больше одного хост-процесса от имени пользователя.
  • Родительским процессом (Parent) нормального сервис-хоста всегда является приложение Services.exe. При заражении вирусом вместо него может всё, что угодно.

На скриншотах показан Process Explorer , запущенный от имени администратора. Для просмотра списка.dll, загруженных в сервис-хост, выделите последний кликом мыши и нажмите на клавиатуре Ctrl+D. Чтобы узнать его родительский процесс, нажмите кнопку «Properties » в верхней панели программы и откройте вкладку «Image ».

Что делать, если svchost.exe заражен вирусом

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

Как проверить на ошибки системные файлы

Большая часть динамических библиотек, откуда сервис-хост загружает службы, является собственным файлами Виндовс, меньшая – компонентами драйверов устройств. Ошибки файлов системы поможет исправить консольная утилита sfc.exe.

Запустите от администратора командную строку и выполните инструкцию sfc / scannow . Параметр /scannow означает: «немедленно проверить и заменить все поврежденные файлы из кэшированной копии».

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

Что делать, если ничего не помогает

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

Если подозрение пало на оборудование, первым делом попробуйте полностью переустановить все драйвера, используя заведомо стабильные версии. Устройства проверьте поочередным отключением – в BIOS или, если это возможно, физически. При обнаружении источника неполадки замените или отремонтируйте проблемный узел.

Ещё на сайте:

Данная короткая заметка будет посвящена теме обнаружения источника внезапной нагрузки на процессор. Нагрузка на процессор, ну и что? В процессе работы с операционной системой 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 ;
  • видеть стеки вызовов модулей, что намного глубже позволяет погрузиться в изучение сбоя.

У вас постоянно загружен процессор и сильно тормозит компьютер или ноутбук? И при этом – в режиме простоя? Большая загрузка ЦП (центрального процессора) – это одна из наиболее распространенных на сегодня проблем. И с ней постоянно сталкиваются пользователи ПК и ноутбуков.

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

Эти советы – универсальны, поэтому можете применять их на Windows 7, 8, 10 и XP. Модель процессора на ноутбуке или компьютере тоже не имеет особого значения.

Для начала нужно запустить диспетчер и посмотреть, на сколько процентов загружен процессор на вашем ПК. Для этого нажмите Ctrl+Shift+Del и обратите внимание на пункт «Загрузка ЦП» (он находится внизу).

В принципе, это значение может прыгать. Но не сильно. Например, у Core i5 в режиме простоя (или при включенном браузере) грузится на 2-8%. И это норма. Хотя на слабых процессорах (например, 2-ядерных Core 2 Duo) нагрузка может быть уже 10-20%. Здесь все зависит от конкретной модели ЦП, установленной на компьютере или ноутбуке.

Если же процессор загружен на 50 или 100 процентов, то это явно перебор. Чтобы посмотреть, почему так сильно грузится процессор на Windows 7, перейдите на вкладку «Процессы», а затем нажмите на поле «ЦП». Это отсортирует список в порядке убывания.

На скриншоте ниже видно, что ЦП грузит только плагин Flash Player (из-за включенного браузера). Но не сильно, поэтому в данном случае это не критично.

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

А еще обязательно обратите внимание на неизвестные процессы, из-за которых процессор загружен на 50 процентов (или выше). Особенно, если вы их первый раз видите, и они грузят ЦП как минимум на 20%. Вполне возможно, что это вирусы.

Что делать, если процессор загружен без причин

Не нашли никаких процессов в диспетчере, а ЦП по-прежнему сильно грузится в простое? Для начала можно нажать кнопку «Отображать процессы всех пользователей». Обычно это не помогает, но, возможно, в списке появятся новые пункты.

А чтобы отобразить все процессы, из-за которых постоянно загружен ЦП, рекомендуется использовать бесплатную программу Process Explorer . Пользоваться ею очень просто:

  1. Запустите утилиту.
  2. Нажмите на столбец «CPU», чтобы отсортировать процессы в порядке убывания нагрузки.
  3. Смотрите, почему сильно грузится процессор.

На скриншоте выше видно, что всему виной процесс Interrupts (системные прерывания). Именно он нагружает процессор на 18% в режиме простоя. Хотя может грузить на 50 и даже на все 100 процентов!

Исправить подобную проблему крайне сложно. А все потому, что такая большая нагрузка ЦП может возникать из-за:

  • драйверов на компьютере или ноутбуке;
  • вирусов;
  • неправильного режима работы жесткого диска;
  • проблем с периферийной техникой (принтерами, сканерами, HDD-накопителями и пр.).

Чаще всего сильная загрузка центрального процессора возникает из-за драйверов. Чтобы проверить это, и посмотрите, есть ли нагрузка на ЦП. Если нет – то, скорее всего, проблема кроется именно в драйверах.

Наиболее простой способ исправить ее – . А потом поочередно устанавливать драйвера на компьютер или ноутбук и проверять загрузку ЦП после каждого из них. Так можно быстро найти виновника.

Обычно эта проблема появляется из-за универсальных драйверов Microsoft, которые ставятся сразу после установки новой Windows. В данном случае лучше самостоятельно найти нужные драйвера на оф. сайте производителя и установить их. Подробнее о том, как это сделать, читайте здесь:

А еще совсем не лишним будет использование специальных утилит для поиска вредоносных программ и рекламных вирусов (adware, malware).

Некорректная работа жесткого диска тоже может повлиять на то, что процесс будет сильно загружен. Особенно, если он работает в режиме PIO (должен быть установлен режим DMA). Это нужно обязательно проверить и исправить при необходимости.

И последняя причина, из-за которой возникают системные прерывания и большая нагрузка процессора – проблемы с принтерами, сканерами и другим периферийным оборудованием. Чтобы это проверить, отключите все устройства и оставьте только мышку и клавиатуру.

Также зайдите в Пуск – Панель управления – Диспетчер устройств и посмотрите, имеются ли здесь устройства, возле которых стоит желтый восклицательный знак. Его наличие говорит о том, что оборудование работает некорректно и требуется обновить драйвер (что и нужно сделать).

Процессор постоянно загружен на 100 процентов в Windows 7

Есть еще одна довольно распространенная проблема, которая часто встречается на Windows 7. Заключается она в том, что на многих ПК и ноутбуках процессор постоянно загружен на 100 процентов в режиме простоя (т.е. даже на рабочем столе). И если открыть диспетчер задач, то там можно увидеть процесс svchost.exe, который дублируется несколько раз.

Причина здесь кроется в автоматическом обновлении Windows 7. Дело в том, что обновления сейчас выпускают только для Виндовс 8 и 10. Для Windows 7 они, конечно же, не подходят, а потому работают некорректно. Именно по этой причине на Windows 7 процессор грузится на 100 процентов.

Чтобы это исправить, нужно просто отключить автоматическое обновление. Для этого:


После этого процесс svchost.exe должен исчезнуть, а вместе с ним снизится нагрузка ЦП.

Вместо заключения

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

Кстати, не забывайте, что причиной высокой загрузки ЦП может быть пыль или перегрев (слишком большая температура). Банально, но стоит проверить. Возможно, это тоже поможет понизить загрузку ЦП.