Много svchost: Что такое хост-процесс служб (svchost.exe) – зачем так много

SVCHOST.EXE что за процесс так сильно грузит процессор/память?

Home » Windows



Published by: Category: Windows























Содержание

  • 1 Что такое svchost.exe
  • 2 Почему в системе несколько процессов svchost.exe
  • 3 svchost.exe вирус или нет?
  • 4 svchost.exe грузит процессор или память

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

  1. На исследование попался компьютер с вредоносами, маскирующимися под этот процесс – svchost.exe.
  2. На другом компьютере система дико тормозила из-за того, что svchost.exe потреблял очень много памяти (практически всю доступную), суммарное потребление памяти доходило до 96%, куча приложений выгружалась в подкачку – представляете тупняки системы?

Будем последовательны

Что такое svchost.

exe

Данный процесс является основным процессом для запуска различных служб системы Windows. Помните раздел “Службы”? Там и служба сети и обозреватель компьютеров и служба обновлений и ещё добрых несколько десятков сервисов. Большая часть из них должна быть представлена в системе через процесс как раз svchost.exe.

Многие службы представлены через процесс svchost.exe

Почему в системе несколько процессов svchost.exe

Как раз потому, что одновременно функционирует множество служб.

Несколько процессов svchost.exe

Если процессы не отображаются, в диспетчере задач нажмите кнопку “Отображать процессы всех пользователей“, т.к. все эти процессы работают от имени других пользователей (например “NT_AUTHORITY\система“). И также обратите внимание на командную строку, с которой запущен процесс – там есть полный путь. Если там что-то отличное от \Windows\System32\svchost.exe – это повод уделить больше внимания такому процессу, т.к. под этот процесс часто маскируется различное вредоносное программное обеспечение.

P.S. Если вам не видно столбец “командная строка” или иной, нажмите в меню “Вид -> Выбрать столбцы” и отметьте нужные галочки напротив имён столбцов.

svchost.exe вирус или нет?

Давайте сделаем так, вот ниже будет ряд вопросов – если вы ответили “нет” на какие-либо из них, тогда стоит обратить пристальное внимание. И чем больше таких ответов, тем более пристальное внимание нужно уделить.

  1. Вы можете запустить диспетчер задач и перейти на вкладку “Процессы”?
  2. Вы видите несколько процессов svchost.exe при отображении процессов всех пользователей?
  3. Имена всех этих процессов выглядят одинаково (именно “svchost.exe” без всяких “0” вместо “o” и т.д.)?
  4. Параметры запуска у них схожи? “-k LocalService” или что-то типа такого…
  5. Все процессы запущены из одного каталога? “\Windows\system32\” по умолчанию.
  6. Все процессы svchost.exe запущены от системных учётных записей?

svchost вирус или нет

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

svchost.exe грузит процессор или память

Вот это очень распространённая проблема. И ход действий здесь весьма интересен.

  1. Нужно определить имя службы, которая потребляет системные ресурсы.
    Итак, пойдём по шагам. Для Windows 7 нужно отобразить процесс “ИД Процесса” или “pID” – отобразит в диспетчере задач идентификатор процесса, чтобы можно было однозначно идентифицировать и отличать один svchost.exe от другого.
    Для Windows 8, например, в диспетчере все процессы уже сгруппированы по PID-ам.

    Процессы сгруппированы по PID

  2. Запоминаем PID и для Windows 7 переходим на вкладку “Службы”.
    Службы по PID процессов

    Там упорядочиваем по PID и ищем наш злополучный PID, изучаем список служб…

  3. Если служба вам не нужна – её можно смело отключить. Если нужна – попробовать настроить.
    Извечный вопрос “Какие службы нужны, а какие можно смело отключить?” – В Интернете миллион инструкций, мой ответ – если вы твёрдо уверены, что это вам не надо – остановите, поработайте. Запишите, что отключили. Все конфигурации различные, кто-то работает без сети вообще – может отключить многое. Кто-то без принтера, поиска файлов, оформления – отключает другое.
    Лично по своему опыту – компьютер задышал посвободнее, когда я отключил службу обновления, брандмауэр, защитник Windows (т.к. использую стороннее антивирусное решение), службу индексирования и темы. Также можно безопасно отключить и другие, но лучше почитайте соответствующие мануалы. Список служб ведь не такой большой – нужно смотреть только те, которые относятся к данному процессу, который потребляет много ресурсов.
  4. PROFIT. И всё.

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


0





Интересно? Поделись с другом









Про процесс svchost.

exe: почему их так много?

Что такое процесс svchost.exe?

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

Что за процесс svchost.exe ?

Согласно самой Microsoft, процесс svchost.exe – «общее название основных служб, запущенных от имени библиотек динамической связи». Вобщем, читается плохо даже на английском. Объясняем по-русски.

Некоторое время назад Microsoft начала переносить функциональность своей операционной системы из внутренних служб самой Windows (.exe файлы) в файлы динамических библиотек (.dll). C точки зрения программирования это обещало определённые перспективы в плане непрерывного и повторяющегося использования в системе. Но любой продвинутый пользователь Windows уже знает, что прямо из-под системы файл . dll запустить просто не получится – он это не умеет. Файл .dll должен быть ВЫГРУЖЕН из исполнительного файла .exe. История получилась немного запутанной. Так и появился «процесс» или контейнер процессов svchost .

Почему запущено столько процессов svchost.exe ?

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

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

И что с этим делать?

Можно «укоротить» список запускаемых служб исключением абсолютно необязательных. Какие не нужны, совет дать не могу – ваш личный опыт через отключение процессов покажет. Но, к примеру, если Диспетчер задач показывает сильнейшую загрузку процессора процессом svchost.exe посоветую немедленно этот процесс перезагрузить. Если всё без изменений и процесс продолжает грузить систему до перегрева процессора, то «прогоните» проверку антивирусом при включённом сетевом соединении: у вас вирус. Если проверка показала, что вирусы здесь не причём, копайте в сторону конкретных служб, которые входят в контейнер Svchost.exe. Так, один из примеров рассматривается в статье

Svchost.exe: что здесь за что отвечает?

Диспетчер задач ответить на этот вопрос сразу не сможет. А вот через командную консоль после команды:

tasklist /SVC

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

Также консоль может показать исключительно процессы и в том виде, как его видит Диспетчер:

tasklist /svc | find "svchost.exe"

Этот список можно увидеть в виде текстового файла в корне диска или любом понравившемся месте:

tasklist /svc | find "svchost. exe" > c:\список.txt

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

Как отключать службы?

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

services.msc

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

Успехов.

Устранение многих SVCHosts Windows — Аллан Дж. Смити

В частности, одна программа появляется чаще, чем любая другая, всякий раз, когда возникает сбой программного обеспечения Windows или вы просматриваете список в диспетчере задач: svchost. exe. Иногда диспетчер задач показывает их десятки!

Согласно Microsoft: «svchost.exe — это общее имя хост-процесса для служб, которые запускаются из библиотек динамической компоновки».

Иными словами, процесс svchost.exe — это системный процесс, присутствующий во всех версиях Windows, начиная с Windows 2000 и NT. Благодаря тому, как устроена Windows, многие из общих служб динамически загружаются во время выполнения по запросу. Так называемые системные службы, такие как брандмауэр Windows и диспетчер очереди печати, на самом деле упакованы в виде динамически подключаемых библиотек (файлы .dll), а не исполняемых программных файлов (.exe). Это позволяет повторно использовать программный код, но вы не можете запустить файл .dll непосредственно в Windows, его необходимо загрузить из исполняемого файла (.exe).

Следовательно, библиотеки DLL общих служб вызываются и помещаются внутрь процесса svchost.exe. Вы даже можете запустить несколько служб в одном процессе svchost. exe.

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

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

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

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

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

Из-за того, что большая часть кода Windows не интегрируется должным образом, а иногда Windows DLL и сторонние DLL плохо работают вместе, вы также можете запустить много процессов svchost одновременно.

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

Все эти процессы svchost будут использовать драгоценные ресурсы; Циклы ЦП, адреса памяти, стеки, кучи, дескрипторы файлов — куча технических вещей, о которых вы, вероятно, не заботитесь.

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

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

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

Проверка из командной строки (Vista или XP Pro)
Я не хочу идти по этому пути, но в этом случае вам нужна командная строка:

список задач /SVC

Это покажет вам, какие службы размещенный конкретным экземпляром svchost.exe.

C:\Documents and Settings\allan>tasklist /svc

Имя изображения                  Службы PID
========================= = = ===== =============================================
System Idle Process            0 Н/Д
System                        4 Н/Д
smss. exe                     552 Н/Д
csrss.exe                    616 Н/Д
winlogon.exe                 644 Н/Д
services.exe                 688 Eventlog, PlugPlay
lsass.exe 700 PolicyAgent, ProtectedStorage, SamSs
VBoxService.exe              864 VBoxService
svchost.exe                  908 DcomLaunch, TermService
svchost.exe                 1012 RpcSs
svchost. exe                1108 AudioSrv, Browser, CryptSvc, DHCP, dmserver,
ERSvc, EventSystem,
FastUserSwitchingCompatibility, helpvc,
lanmanserver, lanmanworkstation, Netman,
Nla, RasMan, Schedule, seclogon, SENS,
SharedAccess, ShellHWDetection, TapiSrv,
Темы, TrkWks, W32Time, winmgmt, wscsvc,
wuauserv, WZCSVC
svchost.exe                         1220 Dnscache
svchost.exe                 1444 LmHosts, RemoteRegistry, SSDPSRV
vsmon.exe                   1556 vsmon
spoolsv. exe                 2004 Spooler
svchost. exe                  252 WebClient
...

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

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

Этот метод, по крайней мере, предоставляет реальное имя в столбце «Описание». Затем вы можете остановить или даже отключить службу, если не хотите, чтобы она работала.

Службы в панели управления Windows
Чтобы остановить службу, перейдите в Панель управления, Администрирование, затем Службы или введите services.msc в поле поиска или запуска меню «Пуск».

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

Process Explorer в XP и Vista
Существует замечательная утилита Process Explorer от Microsoft Sysinternals, которая показывает службы, работающие в каждом процессе svchost.exe.

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

Отключение служб
Чтобы остановить запуск нежелательных или проблемных служб при запуске, вы можете перейти в Панель управления, Администрирование, затем Службы или ввести services.msc в поле поиска или запуска меню «Пуск».

В этом списке перечислены все службы, и вы можете дважды щелкнуть или щелкнуть правой кнопкой мыши для контекстного меню, а затем выбрать «Свойства». Измените Тип запуска на Отключено, а затем нажмите кнопку Стоп, чтобы немедленно остановить его. AJS

Нравится:

Нравится Загрузка…

Svchost.exe — Системное администрирование — Windows Server Brain

Последнее обновление: среда, 3 мая 2023 г. |
Системное администрирование

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

Microsoft предоставила своим пользователям инструмент для проверки производительности компьютера. Этот инструмент — диспетчер задач, который является единственным способом проверить, что происходит на сервере, но не дает достаточно подробностей о запущенных процессах и службах. Например, в Windows 2003 не предоставляется никакой информации о пути к процессу и о команде, которая его запустила.

Так что, если, взглянув на диспетчер задач под Windows 2003, у вас не будет много деталей, вы можете положиться на сторонние инструменты (такие как Process Explorer, который Microsoft благоразумно купила и который вы можете скачать бесплатно отсюда) или откройте командную строку и введите список задач /svc. Выполнение его команды даст вам дополнительную информацию о службах, стоящих за каждым процессом:

  • svchost.exe DcomLaunch, TermService
  • svchost.exe RpcSs
  • svchost.exe BITS, Browser, CryptSvc, Dhcp, dmserver, EventSystem, helpvc, HidServ, lanmanserver, lanmanworkstation, Netman, Nla, RasMan, Schedule, seclogon, SENS, SharedAccess, ShellHWDetection, TapiSrv, Themes, TrkWks, W32Time, winmgmt, ВЗКСВК
  • svchost.exe Dnscache
  • svchost.exe LmHosts, RemoteRegistry, SSDPSRV
  • svchost.exe Веб-клиент

Информация об этих службах, работающих под управлением svchost. exe, контролируется реестром Windows, в котором информация о конфигурации хранится в разделе реестра Службы (HKLM\SYSTEM\CurrentControlSet\Services). Сам процесс svchost.exe идентифицирует службы, которые он размещает, проверяя подразделы реестра с именами HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost. Каждое отдельное значение в этом ключе объявляет отдельную группу Svchost и отображается как отдельный экземпляр svchost.exe при просмотре активных процессов.
В Windows 2003 службы организованы в следующие группы:

  • netsvcs
  • Локальная служба
  • Сетевая служба

В Windows 2008 службы сгруппированы в более мелкие группы для лучшего управления и контроля:

  • LocalService
  • Локалсервицендноимперсонатион
  • Локалсервиценетворкрестриктед
  • Локалсервиценонетворк
  • Локалсервицепирнет
  • Локальная системанетворкрестриктед
  • Сетевая служба
  • Нетворксервицеандноимперсонатион
  • NetworkServiceNetworkRestricted

Кроме того, зайдя в Диспетчер задач в Windows 2008, который был значительно улучшен, и выбрав соответствующие столбцы, вы получите так много информации о процессе svchost. exe прямо из коробки.

Более того, на вкладке «Службы» в диспетчере задач Windows представлен список служб, их групп и идентификаторов процессов (PID) для более простого устранения неполадок. Используя его, вы вскоре обнаружите, что за svchost.exe у вас обычно стоят:

  • Служба ALERTER: svchost.exe -k LocalService
  • Служба УПРАВЛЕНИЯ ПРИЛОЖЕНИЯМИ: svchost.exe -k netsvcs
  • Служба АВТОМАТИЧЕСКОГО ОБНОВЛЕНИЯ (используется WSUS): svchost.exe -k netsvcs
  • Служба BITS: svchost.exe -k netsvcs
  • Система событий COM+: svchost.exe -k netsvcs
  • Служба DHCP-клиента: svchost.exe -k netsvcs
  • Служба DNS-КЛИЕНТ (кеш DNS-записей): svchost.exe -k NetworkService
  • Служба WEBCLIENT (используется для доступа к Sharepoint): svchost.exe -k LocalService

… и некоторые другие.
В Windows 2008 также имеет смысл сравнивать производительность каждого процесса с сетевой активностью. Это можно сделать с помощью команды netstat.