Процессор всегда загружен на 100. Решение проблемы высокой загрузки ЦП на маршрутизаторах Cisco

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

Доброго времени суток!

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

Очень часто причиной медленной работы и тормозов - является загрузка процессора, иногда она доходит до 100%!

Решить эту проблему не всегда просто, тем более, что ЦП может быть загружен и без видимой на то причины (т.е. возможно вы и не запускали никаких ресурсоемких программ: игр, видеоредакторов и пр.).

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

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

Каким процессом, программой загружен процессор

Самый быстрый способ определить, какая программа нагружает ЦП - это вызвать диспетчер задач (кнопки: Ctrl+Shift+Esc ).

В диспетчере задач откройте вкладку "Процессы" и отсортируйте приложения по нагрузке на ЦП. На скриншоте ниже, видно, что львиную долю ЦП (~84%) съедает браузер Firefox (хотя он у меня даже не запущен... ). Если у вас есть подобная "скрытая" программа - то тут же из диспетчера задач ее можно закрыть (достаточно нажать на нее правой кнопкой мышки...).

Примечание

В Windows есть свой мониторинг ресурсов, который так же можно использовать для просмотра загрузки процессора, памяти, диска и сети. Чтобы его вызвать, нажмите кнопки Win+R , затем введите в строку "Открыть" команду resmon и нажмите Enter .

Важно!

В некоторых случаях диспетчер задач не позволяет вычислить причину загрузки процессора. Кстати, процессор может быть загружен и не на 100%, а, скажем, на 20-50%...

Если диспетчер задач не дал информации к размышлению - рекомендую воспользоваться одной утилитой - Process Explorer (кстати, расположена на сайте Microsoft...).

Process Explorer (поиск "невидимой" причины тормозов)

Отличная программа, которая не раз меня выручала! Основное ее направление работы - показать вам ВСЕ процессы и программы, запущенные на компьютере (от нее, наверное, не уйдет никто...). Таким образом, вы сможете определить наверняка, какой именно процесс нагружает ЦП.

Ниже скриншот очень показательный:

  • System idle process - это показатель в % бездействия системы. Т.е. на первой половине скрина ниже - процессор почти на 95% бездействует (именно так и должно быть, если на нем открыто пару-тройка программ: браузер, проигрыватель);
  • а на второй части скрина System idle process составляет 65%, но hardware interrupts and DPCs аж 20% (а временами доходят и до 70-80% ! Такого быть не должно. Вообще, interrupts (это системные прерывания) при нормальной работе, редко уходят за пределы нескольких процентов! Вот вам и причина тормозов и загрузки компьютера!
  • кстати, очень часто систему грузит процесс svchosts.exe . Вообще, это системный процесс, но есть ряд вирусов, которые маскируются под него и выдают себя за него. Ниже рассмотрим вопрос, как их отловить...

Process Explorer: на первой части скриншота - все нормально, на второй - процессор загружен на ~20% системными прерываниями (hardware interrupts and DPCs).

Если ЦП грузит interrupts...

Если проблема связана hardware interrupts and DPCs - то скорее всего проблемы связаны с драйверами. Точнее с их конфликтом межу собой, а еще более вероятней, несовместимостью с вашей ОС Windows. Причем, даже если в описании к драйверу значится ваша версия Windows - это не 100% гарантия совместимости.

Особое внимание обратите на драйвера: видеокарт, чипсета мат. платы, сетевой карты, Wi-Fi, звуковой карты. Рекомендую скачать их сразу нескольких версий и поочередно попробовать.

Реже проблема связана с вирусами, еще реже с периферийным оборудованием: принтер, сканер, сетевые карты и т.д.

Проверка и обновление драйверов

Иногда подобрать подходящие драйвера для компьютера/ноутбука далеко не так просто, как кажется на первый взгляд... Вообще, обычно, новая версия драйвера работает лучше старой (но иногда - все ровно наоборот). Если у вас загрузка ЦП связана с hardware interrupts and DPCs - рекомендую:

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

Чтобы узнать, есть ли у вас в системе устройства, для которых нет драйверов - откройте диспетчер устройств . Для этого вызовите меню "Выполнить" - кнопки Win+R , введите devmgmt.msc (пример на скрине ниже).

Поиск вирусов

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

  1. В Windows Xp, 7 - можно нажать при загрузке несколько раз клавишу F8 - должно появиться "черное" окно с выбором вариантов загрузки;
  2. в Windows 8, 10 - нажать Win+R , ввести команду msconfig . Далее в разделе выбрать ОС Windows и поставить галочку напротив пункта "Безопасный режим" . Сохранить настройки и перезагрузить ПК (скриншот ниже).

А уже из безопасного режима целесообразно запускать проверку на вирусы. Для этого не обязательно иметь на компьютере установленный антивирус - есть специальный утилиты, которые не нужно устанавливать.

Периферийное оборудование

Если проблема до сих пор не была найдена, рекомендую попробовать отключить от ноутбука (компьютера), все лишнее: принтер, сканер, мышку и пр.

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

Особое внимание обратите на старые устройства, которые, возможно и работают в новой ОС Windows, но драйвера вы для них устанавливали "принудительно" (например, Windows могла предупреждать, что нет подписи, и вы продолжили установку)...

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

Как удалить старые или лишние "дрова" -

Svchost.exe грузит процессор - что это?

Очень часто грузит процессор файл svchost.exe - по крайней мере, так говорит диспетчер задач . Дело в том, что это основной процесс для загрузки служб - т.е. грубо говоря, нужный системный процесс, без которого не обойтись...

Здесь есть два варианта случаев:

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

Как определить: какой svchost.exe файл системный, а какой нет?

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

Суть в чем: все системные процессы, о которых знает AVZ, помечены зеленым цветом. Т.е. если у вас в списке будут svchost черного цвета - присмотритесь к ним очень внимательно, они, скорее всего, вирусные.

Кстати, при помощи этой AVZ можно проанализировать и все другие подозрительные процессы.

Отключение автоматического обновления Windows

Довольно часто svchost грузит процессор из-за включенного автоматического обновления Windows. Я предлагаю ее отключить (ничего плохого в этом нет - просто пару раз в месяц будете вручную проверять обновления - 1-2 раза нажать мышкой...).

Для начала нужно открыть вкладку службы . Самый быстрый способ это сделать - нажать кнопку WIN+R , ввести services.msc и нажать Enter (как на скрине ниже).

  1. тип запуска поставьте "Отключена";
  2. и нажмите кнопку "Остановить".

Сохраните настройки и перезагрузите компьютер.

Нет ли перегрева? Проверка температуры процессора!

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

Чаще всего, причиной перегрева является:

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

Признаки, по которым можно заподозрить перегрев:

Чтобы узнать температуру процессора - рекомендую воспользоваться какой-нибудь утилитой для определения характеристик ПК. Мне, например, симпатичны Speccy и Aida 64. Скриншот температуры процессора из Speccy вы можете увидеть ниже (t=49 °C, градусов Цельсия).

Утилиты для просмотра характеристик компьютера -

Какой должна быть температура процессора?

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

Для персонального компьютера

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

Если говорить в общем, то если температура вашего процессора до 40 °C (градусов Цельсия) - то с ним все в порядке, система охлаждения справляется. Температура выше 50 °C - может указывать на проблемы в системе охлаждения (или на большое количество пыли). Все что выше 60 градусов - необходимо пристально просмотреть и принять меры: почистить от пыли, установить дополнительные кулеры (или заменить старый).

Для ноутбука

Что касается ноутбуков - то здесь планка несколько иная. Так как пространство в ноутбуке ограничено - то процессоры здесь нагреваются выше. Например, не редкость - рабочая температура в нагрузке у многих процессоров составляет около 70 °C. При простое, обычно, эта планка составляет около 40-50 °C. Вообще, начинает беспокоиться (для большинства современных ноутбуков) стоит, если температура процессора поднимается выше 75-80 °C (по крайней мере уточнить, нормальная ли это для вашего устройства.

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

Кстати, многие опытные пользователи (да и некоторые спецы) вторят про критические 105 °C для современных ноутбуков. Я скажу так, работать то ноутбук может и будет при 90-95 °C, и даже, возможно, при 100 °C - но главный вопрос: сколько? Вообще, вопрос дискуссионный для многих...

PS

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

Ну, а на этом у меня все. Удачи!

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 или, если это возможно, физически. При обнаружении источника неполадки замените или отремонтируйте проблемный узел.

Ещё на сайте:

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

Есть две причины – аппаратная и программная . Вторая, конечно, появляется намного чаще, поэтому с нее и начнем. Там могут быть и вирусы, и неизвестные процессы, все что угодно. В данной статье постараюсь помочь разобраться с загрузкой процессора на 100%.

Если есть подозрения на то, что процессор грузится на 100 процентов

Зайдите в диспетчер устройств (сочетание клавиш Esc+Shift+Ctrl ) и зайдите на вкладку «Производительность» . В разделе ЦП есть, как график, который даст понять, насколько сильно грузится процессор, а также строчка «Использование» . Если нагрузка все же в 100 процентов, то стоит принимать меры.

Проблема программного типа

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


Конечно, с помощью диспетчера задач не всегда возможно найти нужный процесс, тогда на помощь приходит сторонняя утилита Process Explorer . Запустите ее и проведите сортировку процессор по загрузке (CPU) и смотрим, что он нам выдает.

Скачать Process Explorer : https://technet.microsoft.com/ru-ru/bb896653.aspx


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

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

Драйвера

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

Проблема из-за вирусов

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

Проблема с жестким диском

Вообще такое бывает не часто, но этот пункт для подстраховки я тоже опишу. В жестких дисках есть два режима работы – DMA и PIO . Первый подразумевает работу напрямую с ОЗУ, а второй устаревший и задействует при работе процессор. Естественно, если жесткий диск работает у вас в режиме PIO, то нужно переключиться. Я этой статье описано, как это сделать.

Проблема со периферией

Самый простой способ проверить, являются ли периферийные устройства виновниками загрузки ЦП – отключить все по порядку. А еще зайдите в диспетчер устройств и проверьте, на всех ли устройствах установлены драйвера. Если там горят желтый треугольник или красный значок, то из-за отсутствия драйверов возможно возникала такая проблема.

Попасть в диспетчер устройств можно так: нажимаем клавиши Win+R и вводим туда команду devmgmt.msc .

Если видите отсутствие драйверов на каких-то устройствах, проведите их обновление прям из диспетчера устройств, либо воспользуйтесь сторонними утилитами.

Аппаратные проблемы загрузки процессора на 100%

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

Частой виной нагрузки является перегрев . А как вы думаете, из-за чего он возникает? Скорее всего из-за плохой системы охлаждения или пыли.

Для начала проверим с помощью AIDA64 или любой другой подобной утилитой процессора. В AIDA64 откройте вкладку «Компьютер» и перейдите в раздел «Датчики» .



Оптимальную температуру для вашего процессора можно определить на официальном сайте производителя. В среднем конечно, до 40 градусов – это нормально. От 50 и вше уже ставит под подозрения, а выше 70 градусов говорит о каких-то проблемах. Конечно, для некоторых процессоров даже 70 градусов оптимальная температура.

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


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

У Вас возникла необходимость нагрузить процессор компьютера на 100%! Например, необходимо протестировать его в экстремальных условиях, либо проверить насколько эффективная система охлаждения и как она справляется с перегрузками. Путей два. Первый — скачать и установить специальную программу вроде CPU Stress Test (CST). А второй — загрузить процессор самостоятельно, средствами только операционной системы Windows. Вот про этот вариант развития событий я сейчас и расскажу!

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

Выглядит это так:

Немного поясню — мы с Вами написали программный код, который запустит простейшую петлю из цикла While для стандартного обработчика Visual Basic. Теперь надо файл сохранить:

Да не просто, а с другим расширением. Для этого в строку «Имя файла» надо прописать его название «loop.vbs».

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

Чтобы нагрузить процессор на 100% необходимо будет его запустить. Но сначала — откройте диспетчер задач на вкладке «Производительность»:

Здесь отображается график загрузки процессора — ЦП. Так как сейчас большинство современных процессоров многоядерные, то чтобы его загрузить по максимуму, т.е. на 100 процентов, необходимо видеть все ядра. Для этого кликаем на графике правой кнопкой мыши и выбираем пункт меню «Изменить график»>>»Логические процессоры». У меня получилось так:

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

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

Для этого там же, в Диспетчере задач на вкладке «Процессы» найдите каждую задачу «Microsoft Windows Based Script Host» и снимите её.