Как исправить высокую загрузку ЦП Svchost.exe

SVCHOST.EXE — это один из тех загадочных процессов, которые постоянно выполняются в Windows и чрезвычайно важны, но вы никогда не знаете, что именно он делает. Так что же такое SVCHOST.EXE? Выявление реальных служб и программ, которые работают внутри каждого процесса SVCHOST.EXE, — это задача, которую стоит знать, особенно когда процесс съедает 99 или 100 процентов вашего процессора!

Итак, прежде чем мы погрузимся в решения, давайте получим более глубокое понимание того, что на самом деле делает этот процесс и как вы можете решить некоторые из проблем, которые могут возникнуть. Во-первых, svchost означает « Service Host », и он делает именно то, что следует из названия: помогает «размещать» службы. Служба в Windows — это просто программа в операционной системе, которая выполняет определенную работу и работает в фоновом режиме все время, когда ваш компьютер включен, даже если вы не вошли в систему.

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

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

На самом деле есть два способа сделать это: сделать все вручную с помощью командной строки и инструмента «Службы» или с помощью стороннего приложения. Я собираюсь упомянуть здесь и то, и другое, на случай, если один из них вам не подходит.

Сначала проверьте наличие вирусов

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

Если у вас еще нет антивируса. Я рекомендую использовать Kaspersky или Bitdefender, поскольку они стабильно занимают первые места в рейтингах AV-Test и AV-Comparatives. Они не бесплатны, но большинство бесплатных антивирусных программ в конечном итоге объединяют лишнее нежелательное ПО или перенаправляют ваш браузер на свое «безопасное» поисковое решение, которое совсем небезопасно и просто отслеживает вас и показывает больше рекламы.

Определение процессов svchost.exe через командную строку (сложный способ)

1. Сначала нажмите Пуск , затем Выполнить , введите CMD и нажмите ОК. . В Windows 8.1 нажмите правой кнопкой мыши кнопку «Пуск» и выберите «Выполнить».

2. Введите в командное окно следующее и нажмите

tasklist/svc/fi «imagename eq svchost.exe

Вы должны получить результат, как показано ниже, с именем, PID и описанием службы

Теперь вы увидите каждый процесс svchost вместе с его уникальным идентификационным номером и службами, за которые он отвечает. Однако эти имена все еще очень загадочны и являются сокращенными именами. Чтобы получить более полезную информацию о процессе, мы можем использовать браузер Services в Windows.

3. Щелкните правой кнопкой мыши Мой компьютер и выберите Управление . На открывшемся экране выберите Управление компьютером , а затем выберите Службы и приложения . Наконец, выберите Services .

4. Теперь попробуйте сопоставить загадочное имя службы Windows с легко читаемыми именами на вкладке «Службы». Это немного и может занять некоторое время, потому что если вы возьмете процесс с идентификатором 1436 и его именем WudfSvc, вам нужно будет попытаться найти его в списке. Если вы дважды щелкните одно из названий сервисов, вы также увидите их загадочное имя, чтобы вы могли сопоставить их. В моем случае я предположил, что W означает, что процесс начинается с «Windows», и открывал их, пока не увидел совпадение.

Как видите, служба Windows Driver Foundation на самом деле называется для краткости wudfsvc !

Идентификация процессов svchost.exe через Process Explorer (простой способ)

Если вы обнаружили, что это слишком сложно, есть гораздо более простой способ! Ознакомьтесь с инструментом Process Explorer от Microsoft (первоначально от SysInternals). Инструмент полностью бесплатен и предоставляет подробную информацию по каждому запущенному в данный момент процессу.

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

Диспетчер задач Windows 8

И последнее, что я хотел упомянуть, это то, что диспетчер задач Windows 8 в основном использует командную строку или Process Explorer. полностью устаревший. Откройте диспетчер задач, нажав CTRL + SHIFT + ESC , и прокрутите вниз вкладку Процессы до места, где написано Процессы Windows .

Здесь вы увидите каждый процесс svchost.exe отображается как Service Host: с указанием типа учетной записи, под которой он работает (локальная система, сетевая служба и т. д.). Рядом с ним также будет номер, и если вы развернете элемент, щелкнув стрелку, вы также увидите все службы, запущенные в рамках этого конкретного процесса.

Исправление высокой загрузки ЦП SVCHOST

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

Однако в большинстве случаев это возникает проблема, это как-то связано с процессом Windows. Лучшее решение в этом случае — установить все последние обновления с веб-сайта Microsoft. Если вы не можете сделать это в Windows, попробуйте перезагрузить компьютер в безопасном режиме и повторите попытку.

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

Чтобы отключить службу в Windows, щелкните ее правой кнопкой мыши в Services и выберите Свойства .

Затем выберите Отключено в комбинированном списке Тип запуска , расположенном в середине диалогового окна:

Я прошел через этот процесс пару раз, и он у меня сработал. Итак, снова сначала отключите службу, затем перезагрузите компьютер, затем установите обновления вручную, затем снова включите службу, а затем снова перезагрузите компьютер. Если это не помогло, вам необходимо выполнить ремонтную установку Windows. Выполните поиск в Google для восстановления и следуйте инструкциям. Если вы используете Windows 8, вы можете обновить свой компьютер. Если у вас есть вопросы, оставьте комментарий. Наслаждайтесь!



Как диагностировать ненормальное использование ЦП с помощью svchost.exe? [дубликат]

У меня есть ноутбук с 32-разрядной системой Win 7, работающей на двухъядерном Pentium (это ноутбук 2010 года). Иногда работает нормально, но обычно простаивает при 100% загрузке процессора. ЦП используют два процесса svchost.exe (по 50% каждый). Насколько я понимаю, это сервисный хост. Есть ли способ узнать, какая служба является виноватой?

Обратите внимание: это происходит даже в безопасном режиме.


28

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

Процедура выглядит следующим образом:

  1. Используйте Диспетчер задач для отображения всех процессов, отсортированных по убыванию ЦП, и отметки PID процессов, потребляющих ЦП

  2. В командной строке (cmd) введите команду
    Список задач/svc/fi "IMAGENAME eq svchost.exe"

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

  4. Для каждого из Для имен в списке введите следующую команду в командной строке (cmd), которая называется Запуск от имени администратора:
    sc config type = own
    (Примечание пробел между ‘=’ и ‘own’)

  5. Reboot

Система службы, которые вы разделили, теперь будут запускаться в собственном экземпляре svchost.exe, и их можно будет увидеть в диспетчере задач на вкладке «Процессы». Вы можете щелкнуть экземпляр правой кнопкой мыши и выбрать «Перейти к службам», чтобы перейти непосредственно к service или снова используйте команду tasklist.

Для получения дополнительной информации см. статью Microsoft
Начало работы с SVCHOST.EXE Устранение неполадок.

Улучшите этот ответ
отредактировал 27 марта ’17 в 18:47
ответ дан 24 марта ’17 в 21:19
добавить комментарий |

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

Процедура следующая:

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

  2. В командной строке (cmd) введите команду
    Список задач/svc/fi "IMAGENAME eq svchost.exe"

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

  4. Для каждого имени в списке введите следующую команду в командной строке (cmd), которая называется Запуск от имени администратора:
    sc config type = own
    (Обратите внимание на пробел между ‘= ‘и’ own ‘)

  5. Перезагрузить

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

Для получения дополнительной информации см. статью Microsoft
Начало работы с SVCHOST.EXE Устранение неполадок.


7

Process Explorer упрощает это. Я подтвердил, что это работает с Process Explorer v16.20 в 64-битной Windows 7 Professional и 64-битной Windows 10 Pro.

  1. Запустить Process Explorer с повышенными правами.
  2. Найдите процесс svchost.exe с высоким (или даже просто измеряемым/непустым) значением в столбце CPU . В этом может помочь сортировка по столбцу Process или CPU .
  3. Щелкните правой кнопкой мыши svchost. exe и выберите Свойства ... .
  4. В окне свойств процесса выберите вкладку Потоки . Будут отображены все потоки в этом процессе.
  5. Найдите поток с высоким (или, опять же, просто измеряемым/непустым) значением в CPU столбец. В этом может помочь сортировка по столбцу CPU .
  6. В столбце Service будет показано имя службы, в которой выполняется этот поток.

Если имя службы вам не знакомо. ..

  1. В окне свойств процесса выберите вкладку Services . Будут отображены все службы, которые выполняются в этом процессе.
  2. Сопоставьте столбец Service на вкладке Services со столбцом значение столбца Service на вкладке Threads , которую вы обнаружили на шаге 6.
  3. В столбце Отображаемое имя будет отображаться понятное имя службы. Описание выбранной службы появится под списком служб.
Улучшите этот ответ
отредактировано 26 марта ’17 в 17:51
ответил 25 марта ’17 в 1:28
  • Ах, я не знал об этих расширенных функциях Process Explorer. Спасибо. — Violet Giraffe Mar 25 ’17 в 6:04
добавить комментарий |

Process Explorer упрощает это. Я подтвердил, что это работает с Process Explorer v16.20 в 64-битной Windows 7 Professional и 64-битной Windows 10 Pro.

  1. Запустить Process Explorer с повышенными правами.
  2. Найдите процесс svchost.exe с высоким (или даже просто измеряемым/непустым) значением в CPU . В этом может помочь сортировка по столбцам Process или CPU .
  3. Щелкните правой кнопкой мыши процесс svchost.exe и выберите Свойства ... .
  4. В окне свойств процесса выберите Вкладка Потоки . Будут отображены все потоки в этом процессе. d.
  5. Найдите поток с высоким (или, опять же, просто измеряемым/непустым) значением в столбце CPU . В этом может помочь сортировка по столбцу CPU .
  6. В столбце Service будет показано имя службы, в которой выполняется этот поток.

Если имя службы вам не знакомо. ..

  1. В окне свойств процесса выберите вкладку Services . Будут отображены все службы, которые выполняются в этом процессе.
  2. Сопоставьте столбец Service на вкладке Services со столбцом значение столбца Service на вкладке Threads , которую вы обнаружили на шаге 6.
  3. В столбце Отображаемое имя будет отображаться понятное имя службы. Описание выбранной службы появится под списком служб.

3

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

На вкладке Процессы :

  • Установите флажок Показать процессы от всех пользователей .
  • Щелкните правой кнопкой мыши «заголовок таблицы» процессов (который содержит имена столбцов, например Имя изображения , PID , Имя пользователя , ЦП , …) и выберите Выбрать столбцы. .. .
    • Прокрутите всплывающее диалоговое окно вниз и убедитесь, что вы отметили Командная строка и PID (идентификатор процесса) , затем нажмите ОК .
  • Вернитесь на вкладку Процессы , щелкните столбец ЦП заголовок, чтобы процессы были упорядочены по потреблению ЦП (обратите внимание, что процессы могут отображаться в порядке возрастания/убывания — каждый щелчок по ЦП переключает порядок), щелкайте, пока не появятся 2 процесса вверху таблицы. Теперь вы можете увидеть их командную строку (я не знаю, но мне кажется, что одна из них — netsvcs (Сетевые службы)), а также их PID.

  • Затем вам нужно сопоставить 2 процесса со службами. Для этого вы можете:

    • Щелкните их правой кнопкой мыши, а затем Перейти к службам … . Это переместится на вкладку Services , где будут выбраны все службы, запущенные в этом процессе (для этого варианта вам не нужны никакие из предыдущих шагов :)).
    • Откройте оснастку Services в mmc . При двойном щелчке по службе (имеет смысл проверять только те, которые работают), в разделе Путь к исполняемому файлу вы можете увидеть их командную строку, в которой вы должны выполнить сопоставление.
  • На W10 вы можете просмотреть точную информацию, которая вам нужна, из Resource Monitor (вы можете начать его из Диспетчера задач , вкладка Производительность ). Здесь вы переходите на вкладку ЦП , где перечислены службы и их потребление ЦП.

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

Улучшить этот ответ
отредактировал 25 марта ’17 в 16:51
ответил 24 марта ’17 в 21:25
  • Я никогда не замечал, что вы видите командную строку, замечательно! Не так однозначно, как ответ Гарримка, но это полезно знать. — Violet Giraffe, 24 марта 2017 г., 21:27
  • Диспетчер задач может сделать это самостоятельно. Если при переключении на вкладку «Службы» выбран процесс svchost, там будут выбраны службы, запущенные в этом процессе. — Саймон Рихтер, 25 марта ’17 в 0:48
  • 1
    Правда? На W10 этого не происходит (по крайней мере, когда уже выбрана какая-то служба). Единственный способ — выполнить rclick в процессе, а затем выбрать Перейти к сервису (ям) (вариант, который я пропустил — скорее всего, он существует в W7 тоже). К сожалению я не могу проверить. — CristiFati, 25 марта ’17, в 1:06
  • 1
    @CristiFati этот параметр существует с Windows Vista (источник: technet.microsoft.com/en-us/library/ff642468.aspx), вам, вероятно, следует добавить его в свой ответ вместо сопоставления PID вручную — Spc_555, 25 мар. ’17 в 7:23
добавить комментарий |

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

На вкладке Процессы :

  • Установите флажок Показать процессы от всех пользователей .
  • Щелкните правой кнопкой мыши «заголовок таблицы» процессов (который содержит имена столбцов, например Имя изображения , PID , Имя пользователя , ЦП , …) и выберите Выбрать столбцы. .. .
    • Прокрутите всплывающее диалоговое окно вниз и убедитесь, что вы отметили Командная строка и PID (идентификатор процесса) , затем нажмите OK .
  • Вернуться к Процессы , щелкните заголовок столбца ЦП , чтобы процессы были упорядочены по потреблению ЦП (обратите внимание, что процессы могут отображаться в порядке возрастания/убывания — каждый щелчок на CPU переключает заказы), нажимайте до тех пор, пока 2 процесса не появятся в верхней части таблицы. Теперь вы можете увидеть их командную строку (я не знаю, но мне кажется, что одна из них — netsvcs (Сетевые службы)), а также их PID.

  • Затем вам нужно сопоставить 2 процесса со службами. Для этого вы можете:

    • Щелкните их правой кнопкой мыши, а затем Перейти к службам … . Это переместится на вкладку Services , где будут выбраны все службы, запущенные в этом процессе (для этого варианта вам не нужны никакие из предыдущих шагов :)).
    • Откройте оснастку Services в mmc . При двойном щелчке по службе (имеет смысл проверять только те, которые работают), в разделе Путь к исполняемому файлу вы можете увидеть их командную строку, в которой вы должны выполнить сопоставление.
  • На W10 вы можете просмотреть точную информацию, которая вам нужна, из Resource Monitor (вы можете начать его из Диспетчера задач , вкладка Производительность ). Здесь вы переходите на вкладку ЦП , где перечислены службы и их потребление ЦП.

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

Оцените статью
logicle.ru
Добавить комментарий