Как я отслеживаю использование ЦП для Windows Services?

27

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

Например, общее использование ЦП указано на уровне 70%, но сводка перечисленных приложений составляет всего около 30%. Я предполагаю, что отличие от служб, которые не перечислены на вкладке Процессы в диспетчере задач Windows.

птенцы
источник

Ответы:

25

Вот как получить подробную информацию о службе без каких-либо внешних инструментов в Windows 7 и 8:

Откройте монитор ресурсов:

  • Откройте диспетчер задач и перейдите на вкладку «Производительность»
  • Нажмите «Открыть монитор ресурсов» внизу

Показать детали сервиса:

  • Нажмите на вкладку "CPU"
  • В разделе «Процессы» найдите нужный процесс; вы можете отсортировать по процессору, нажав на заголовок столбца «CPU»
    • Установите флажок рядом с ним
  • Разверните раздел «Услуги» ниже; вы увидите, какой конкретный сервис использует процессор

введите описание изображения здесь

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

Доминик Андреас
источник
Также есть раздел «Услуги», который вы можете расширить в разделе «Процессы». В любом случае, спасибо!
Николас Райли
Вот о чем я говорил, рад, что вы нашли его :-), выбрав процесс в разделе «Процессы» (например, в моем случае определенный svchost), вы можете увидеть сервисы в представлении «Сервисы», которые связаны с этим конкретным процесс.
Доминик Андреас
Наконец, я смогу отследить этот таинственный сервис, который использует 1 процессор при 100% на Windows 7, только когда мой экран выключается после 15 минут простоя. Как только я проснулся, служба освобождает используемый процессор. Я только видел достаточно, чтобы увидеть, что это «svchost» ... теперь, со средним значением 60 секунд, у меня будет время, чтобы увидеть это. Чертовы ботнеты!
MrBrody
7

Вероятно, лучшим инструментом является Process Explorer от Sysinternals. Вы можете получить этот инструмент и многие другие здесь .

Редактировать: чтобы увидеть, какие сервисы работают в svchost, а не как отдельный процесс, вам нужно добавить столбец «Командная строка» в правое окно. К сожалению, это не покажет вам сервисы, которые работают вместе. Чтобы увидеть эту информацию в Process Explorer, вам нужно навести указатель мыши на конкретный экземпляр svchost, о котором идет речь. Информация появится во всплывающем окне.

KevinH
источник
Вы также можете выбрать, чтобы procmon заменял Taskman. Procmon делает это, регистрируя себя как отладчик для Taskman и просто запускает себя вместо Taskman, когда что-то хочет запустить Taskman.
Брайан Райтер
Упс. Не procmon, я имею в виду procxp. (Procmon - это еще один инструмент от sysinternals, который позволяет вам наблюдать за реестром, файловой системой и доступом к Windows API для процессов.)
Брайан Рейтер
Обратите внимание, что если вы используете «Файл»> «Показать детали для всех процессов», вы можете использовать вкладку «Потоки» в свойствах процесса для этого экземпляра svchost.exe (дважды щелкните процесс или нажмите Enter), чтобы увидеть использование ЦП для каждого потока, и в столбце Сервис будет указан соответствующий сервис.
Николас Райли
В ProcessExplorer вкладки [Services] и [TCP / IP] дали мне ценную информацию об идентификации конкретной службы. Существует также другой способ идентификации сервиса с помощью правой кнопки мыши в стандартном диспетчере задач, который я публикую ниже в качестве отдельного ответа.
Алекс Фортуна,
1

Попробуйте бесплатный расширенный диспетчер задач Extensoft

http://www.extensoft.com/?p=downloads

Перейдите на вкладку « Службы » и щелкните правой кнопкой мыши работающую службу, затем нажмите « Перейти к процессу» .

Он вернет вас на вкладку «Процессы» и выделит, какой процесс используется этой службой.

Qwerty
источник
Я установил бесплатный расширенный диспетчер задач. Это действительно добавляет сервисную вкладку. Я нажимаю на сервис и выбираю перейти к процессу. Он переключается на вкладку процесса, но не выделяет процесс. Кроме того, есть ли инструмент, который показывает использование процессором всех сервисов в списке (аналогично списку процессов в диспетчере задач)? Примечание. Я использую Windows Vista Home Premium Edition.
Я не уверен, почему это не выдвигает на первый план процесс. У меня также есть машина с Vista, и она показывает, какой процесс связан с сервисом.
Qwerty
1

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

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

С помощью sysinternals Process Explorer вы можете навести курсор мыши на файл servicehost.exe и увидеть всплывающую подсказку о службах, размещенных внутри.

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

Брайан Райтер
источник
tasklist /svcэто хорошая вещь, показывает PID и связанные с ними услуги в краткой форме. Спасибо!
Алекс Фортуна,
1

Это работало для меня в стандартном диспетчере задач, доступном в Windows 7 Ultimate:

  1. Откройте диспетчер задач.
  2. Нажмите вкладку [Процессы].
  3. Нажмите кнопку [Показать процессы от всех пользователей].
  4. Щелкните правой кнопкой мыши на том, svchost.exeчто вызывает проблемы (память, процессор и т. Д.)
  5. В раскрывающемся меню выберите [Перейти к сервису (ам)].

Это приведет вас к вкладке [Услуги] с 1 или более выделенными связанными службами . Обратите внимание, что один svchost.exeможет относиться к ряду услуг на вкладке [Услуги].

Алекс Фортуна
источник
0

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

Но, как сказал Брайан Рейтер, многие сервисы размещаются в одном процессе. Чтобы понять, какой сервис потребляет ваш процессор, вы можете попробовать мой инструмент Service Disclosure . Это позволяет разделить услуги на выделенный процесс. Вы сможете увидеть, какой сервис использует ресурсы. После расследования это позволяет вернуть все услуги обратно.

Дмитрий Овдиенко
источник