如何跟踪Windows服务的CPU使用率?


27

我正在使用Windows任务管理器来跟踪CPU利用率。我注意到我的应用程序已列出,但Windows服务未列出。

例如,列出的CPU总使用率为70%,但列出的应用程序摘要仅约为30%。我认为区别在于Windows任务管理器的“进程”选项卡中未列出的服务。


Answers:


25

以下是在Windows 7和8上无需任何外部工具的情况下详细了解服务的方法:

打开资源监视器:

  • 打开任务管理器,然后单击性能选项卡
  • 单击底部的“打开资源监视器”

显示服务详细信息:

  • 点击“ CPU”标签
  • 在“流程”部分中,找到所需的流程;您可以通过单击“ CPU”列标题按CPU进行排序
    • 选中旁边的框
  • 展开下面的“服务”部分;您将看到哪个特定服务正在使用CPU

在此处输入图片说明

我必须弄清楚这一点,因为svchost消耗了大量资源,这是我看到upnphost是罪魁祸首的唯一方法。


还有一个“服务”部分,您可以在“流程”下展开。无论哪种方式,谢谢!
Nicholas Riley

那就是我在说的,很高兴您发现它:-)通过在“进程”下选择一个进程(例如本例中的特定svchost),您可以在“服务”视图中看到与该特定内容相关联的服务处理。
dominik andreas 2015年

最后,只有在闲置15分钟后我的屏幕关闭时,我才能找到在Windows 7上以100%使用1个CPU的神秘服务。一旦我唤醒它,该服务就会释放它正在使用的CPU。我刚刚看到足以看到它是“ svchost” ...现在,平均时间为60秒,我将有时间看到它。该死的僵尸网络!
MrBrody

7

最好的工具可能是Sysinternals的Process Explorer。您可以在此处获得该工具和许多其他工具。

编辑:要查看svchost中正在运行的服务,而不是作为单独的进程运行,您需要在右侧窗口中添加“命令行”列。不幸的是,这不会向您显示捆绑在一起运行的服务。要在Process Explorer中查看该信息,您需要将鼠标放在有问题的svchost的特定实例上。该信息将出现在弹出窗口中。


您还可以选择让procmon替换Taskman。Procmon通过将自己注册为Taskman的调试器来实现此目的,并且在某些事情想要启动Taskman时仅运行自身而不是Taskman。
Brian Reiter

哎呀 不是procmon,我的意思是procexp。(Procmon是sysinternals的另一个工具,它使您可以监视注册表,文件系统和Windows API的进程访问。)
Brian Reiter,2009年

请注意,如果使用“文件”>“显示所有进程的详细信息”,则可以在svchost.exe实例的进程属性中使用“线程”选项卡(双击进程或按Enter)以查看每个线程的CPU使用率,以及“服务”列将列出相应的服务。
尼古拉斯·赖利

在ProcessExplorer中,[服务]和[TCP / IP]选项卡为我提供了有关特定服务标识的宝贵信息。还有一种通过右键单击我在下面发布的标准任务管理器中作为单独答案的服务标识的方法。
Alex Fortuna 2015年

1

尝试使用Extensoft Free Extended Task Manager

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

转到服务选项卡,右键单击正在运行的服务,然后单击转到流程

它将带您返回到“进程”选项卡,并突出显示该服务正在使用什么进程。


我安装了extensoft免费扩展任务管理器。它确实添加了服务标签。我单击该服务,然后选择继续处理。它切换到“进程”选项卡,但不突出显示该进程。另外,是否有任何工具可以显示列表中所有服务的CPU使用情况(类似于任务管理器中的进程列表)?注意:我正在使用Windows Vista Home Premium Edition。

我不确定为什么它没有突出该过程。我旁边还有一台Vista机器,它显示与该服务相关的过程。
Qwerty

1

许多服务在通用主机进程svchost.exe的实例中运行。您可以在命令行上使用tasklist / svc来获取在svchost.exe的每个实例中运行的服务以及其他进程的枚举。

您也可以在任务管理器中右键单击svchost.exe进程,然后选择“转到服务”,任务员将切换到“服务”选项卡并突出显示相关服务。

使用sysinternals Process Explorer,您可以用鼠标悬停在servicehost.exe上,并查看其中托管的服务的工具提示。

这些都不会告诉您主机服务进程的cpu时间有多少专用于其中托管的特定成员服务。


tasklist /svc很好,它以简短的形式显示了PID和相关服务。谢谢!
亚历克斯·福图纳

1

这在Windows 7 Ultimate中可用的标准任务管理器中为我工作:

  1. 打开任务管理器。
  2. 点击[处理]标签。
  3. 单击[显示所有用户的进程]按钮。
  4. 用鼠标右键单击svchost.exe,这是造成你的麻烦(内存,CPU等)
  5. 在下拉菜单中选择[转到服务]。

这将带您进入[服务]标签,其中包含1个或多个突出显示的相关服务。请注意,svchost.exe在[服务]标签中,一个可以与多个服务相关。


0

您应该以管理员身份打开任务管理器。单击“显示所有用户的进程”按钮。

但是正如Brian Reiter所说,许多服务都托管在一个进程中。要了解哪种服务消耗了您的CPU,您可以尝试使用我的服务披露工具。它使您可以将服务拆分为专用流程。您将能够看到哪个服务使用了资源。经过调查,它可以让您退还所有服务。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.