如何跟踪窗口服务的CPU利用率?

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

例如,总CPU使用率列在70%,但列出的应用程序总结只有约30%。 我认为不同之处在于Windows任务pipe理器的“进程”选项卡中没有列出的服务。

    以下是在Windows 7和Windows 8上没有任何外部工具的情况下获取服务的详细信息:

    打开资源监视器:

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

    显示服务细节:

    • 点击“CPU”选项卡
    • 在“进程”部分,find你想要的进程; 您可以通过单击“CPU”列标题按CPU进行sorting
      • 选中它旁边的框
    • 展开下面的“服务”部分; 你会看到哪个特定的服务正在使用CPU

    在这里输入图像描述

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

    可能最好的工具是Sysinternals的Process Explorer。 你可以在这里得到这个工具和其他许多人。

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

    尝试Extensoft免费扩展任务pipe理器

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

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

    它会将您带回“进程”选项卡并突出显示该服务正在使用的进程。

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

    您也可以右击任务pipe理器中的svchost.exe进程并select“转到服务”,然后taskman将切换到服务选项卡并突出显示相关服务。

    使用sysinternals进程资源pipe理器 ,您可以将鼠标hover在一个servicehost.exe上,并查看托pipe的服务工具提示。

    这些都不会告诉你主机服务进程的CPU时间有多less专用于托pipe在其中的特定成员服务。

    这在Windows 7旗舰版的标准任务pipe理器中适用于我:

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

    这将带你到[服务]选项卡与1个或多个突出显示的相关服务 。 请注意,单个svchost.exe可能与[Services]选项卡中的许多服务有关。

    你应该以pipe理员身份打开任务pipe理器 点击“显示来自所有用户的进程”button。

    但正如Brian Reiter所说,许多服务都是在一个进程中托pipe的。 要实现哪个服务消耗你的CPU,你可以尝试我的服务公开工具。 它允许您将服务分解为专用进程。 您将能够看到哪个服务使用资源。 经过调查,它可以让你返回所有的服务。