Windows 7 Svchost:如何使它在Svchost.exe的每个实例中只运行一个模块?如何获取扩展流程信息?

Windows 7 Svchost:如何使它在Svchost.exe的每个实例中只运行一个模块?如何获取扩展流程信息?,windows-7,process,windows-services,process-explorer,Windows 7,Process,Windows Services,Process Explorer,我的一个申请有问题。我运行应用程序,一切正常。当我关闭这个应用程序时,我注意到系统中的一个“svchost”进程占用了大约95-100%的CPU,我必须弄清楚是什么占用了这么多的CPU周期 我为自己设定了一个简单而直接的目标,即如何做到这一点: 获取进程信息或这个占用大量CPU的特殊“svchost” 我知道svchost进程是用来做什么的,所以我省去了你们解释它的麻烦。所以现在我必须知道这个流氓主机加载了哪些模块 我运行我的应用程序,关闭它,并确保我的进程是完全关闭的,不再在内存中。然后我得到

我的一个申请有问题。我运行应用程序,一切正常。当我关闭这个应用程序时,我注意到系统中的一个“svchost”进程占用了大约95-100%的CPU,我必须弄清楚是什么占用了这么多的CPU周期

我为自己设定了一个简单而直接的目标,即如何做到这一点:

  • 获取进程信息或这个占用大量CPU的特殊“svchost”
  • 我知道svchost进程是用来做什么的,所以我省去了你们解释它的麻烦。所以现在我必须知道这个流氓主机加载了哪些模块
  • 我运行我的应用程序,关闭它,并确保我的进程是完全关闭的,不再在内存中。然后我得到了SVCMost占用100%CPU的PID
  • 我运行了ProcessExplorer(来自sysinternals),获得了有关此svchost托管了多少服务和哪些服务的信息。大约有12项服务。我不必担心这个列表,因为我更关心如何识别这12个服务中的哪一个占用了CPU周期。
  • 现在我有了清单,这里开始棘手的部分。。。我想做下面两个选项中的一个
  • 选项1: 我如何确定这12个服务中的哪一个占用了这么多CPU?我是否可以获得此svchost进程的扩展信息,该信息根据此进程中托管的“每个服务”提供详细信息,rahter根据我现在拥有的进程提供详细信息

    选项2: 是否可以将windows配置为使svchost每个svchost实例只运行一个服务

    如果有更好的方法来调查,缩小这个问题的根本原因,请告诉我

  • 启动资源监视器

    • 在“开始”菜单中键入资源监视器 或
    • 单击任务管理器中“性能”选项卡下的“资源监视器”按钮
  • 单击资源监视器顶部的CPU选项卡

  • 按要调查的进程打勾(我按平均CPU排序)

  • 服务将按您标记的进程进行过滤,并显示该进程中运行的每个服务的CPU统计信息


  • 我已经回答了我的问题,但我把它放在评论之下。我现在添加相同的答案,以便大家知道


    我在上面的问题中找到了两种方法:

    备选方案1的解决方案:

    打开资源监视器(resmon.exe),转到CPU选项卡,检查图像选项卡下的svchost.exe(带有要监视的PID),转到“服务”框,检查不同服务的CPU使用情况

    方案2的解决方案:

    sc config <service name> type= own
    
    sc-config-type=own
    
    或将注册表
    HKLM\System\CurrentControlSet\Services\\Type
    更改为0x10


    有关更多信息,请参阅。

    我找到了如何执行上述问题中的两个选项:选项1的解决方案:打开性能监视器(perfmon.exe),转到“CPU”选项卡,检查“图像”选项卡下的svchost.exe(带要监视的PID),转到“服务”框,并检查不同服务的CPU使用情况。选项2的解决方案:转到注册表项:HKLM\System\CurrentControlSet\Services |(DLL)将类型更改为0x10。请参考更多信息。非常有用,谢谢。根据TechNet博客文章,要将其更改回共享进程,请运行
    sc config type=share
    @MarkBerry:Am happy if-help:)选项1的解决方案中似乎有输入错误
    打开性能监视器(perfmon.exe),转到CPU选项卡
    。我相信你的意思是-
    openresourcemonitor(resmon.exe)
    。Windows 7中的性能监视器中没有CPU选项卡。或者,您可以在运行提示符下键入
    perfmon/res
    以打开资源监视器。在非英语Windows上:W+r
    perfmon/res