Подтвердить что ты не робот

Svchost: Как заставить его запускать только один модуль на один экземпляр svchost.exe? Как получить расширенную информацию о процессе?

У меня проблема с одним из моих приложений. Я запускаю приложение, все в порядке. Когда я закрываю это приложение, я замечаю, что один из процессов "svchost" в системе занимает около 95-100% от CPU, и мне нужно выяснить, что занимает так много циклов процессора.

Я поставил перед собой довольно простые и простые цели в отношении того, как это сделать:

  • Получить информацию о процессе или эту "svchost", которая занимает так много CPU
  • Я знаю, для чего используется процесс svchost, поэтому я спасаю вас, ребята, чтобы объяснить мне об этом. Итак, теперь я должен знать, какие модули загружены этим мошенником svchost.
  • Я запустил приложение, закрыл его и убедился, что мой процесс полностью закрыт, а не в памяти. Затем я получил PID svchost, занимающий 100% процессор.
  • Я запустил ProcessExplorer (из sysinternals), получил информацию о том, сколько и какие службы это svchost. Это около 12 сервисов. Я бы не стал беспокоиться об этом списке, так как меня больше беспокоит ИДЕНТИФИЦИРОВАТЬ, какой из этих 12 сервисов занимает циклы процессора.
  • Теперь у меня есть список со мной, и здесь начинается сложная часть... Я хочу сделать один из двух вариантов ниже

Вариант 1: Как определить, какая из этих 12 служб занимает столько CPU? Могу ли я получить расширенную информацию для этого процесса svchost, который дает мне подробную информацию о базе данных "за услугу", размещенной в этом процессе, rahter на основе процесса, который у меня есть сейчас?

Вариант 2: Можно ли настроить окна, чтобы заставить svchost запускать только один сервис на один экземпляр svchost?

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

4b9b3361

Ответ 1

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

Я выяснил, как сделать оба варианта в моем вопросе выше:

Решение для варианта 1:

Откройте монитор ресурсов (resmon.exe), перейдите на вкладку CPU, проверьте файл svchost.exe(с помощью PID для просмотра) на вкладке "Изображение", перейдите в поле "services" и проверьте использование ЦП различными службами.

Решение для варианта 2:

sc config <service name> type= own

Или изменить в реестре HKLM\System\CurrentControlSet\Services\<ServiceName>\Type на 0x10.

Подробнее см. http://blogs.technet.com/b/askperf/archive/2008/01/11/getting-started-with-svchost-exe-troubleshooting.aspx.

Ответ 2

  • Запустить монитор ресурсов

    • Введите "Монитор ресурсов" в меню "Пуск" или
    • Нажмите кнопку "Монитор ресурсов" на вкладке "Производительность" в диспетчере задач
  • Нажмите вкладку ЦП в верхней части монитора ресурсов

  • Поместите галочку в процессе, который вы хотите исследовать (я сортирую по среднему процессору)

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