AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 12278
Accepted
Aidan Ryan
Aidan Ryan
Asked: 2009-05-27 07:44:07 +0800 CST2009-05-27 07:44:07 +0800 CST 2009-05-27 07:44:07 +0800 CST

如何查找各个 Windows 服务的内存使用情况?

  • 772

任务管理器显示 svchost.exe 的整体内存使用情况。有没有办法查看单个服务的内存使用情况?


请注意,这类似于svchost.exe 上的细粒度性能报告

windows service memory svchost
  • 7 7 个回答
  • 107812 Views

7 个回答

  • Voted
  1. Best Answer
    Peter Mortensen
    2009-06-08T03:53:22+08:002009-06-08T03:53:22+08:00

    有一种简单的方法可以获取您要求的信息(但它确实需要对您的系统稍作改动):

    拆分每个服务以在其自己的 SVCHOST.EXE 进程中运行,并且消耗 CPU 周期的服务将在任务管理器或进程资源管理器中轻松可见(“=”后的空格是必需的):

    SC Config Servicename Type= own
    

    在命令行窗口中执行此操作或将其放入 BAT 脚本中。需要管理权限,并且需要重新启动计算机才能生效。

    可以通过以下方式恢复原始状态:

    SC Config Servicename Type= share
    

    示例:使 Windows Management Instrumentation 在单独的 SVCHOST.EXE 中运行:

    SC Config winmgmt Type= own
    

    这种技术没有不良影响,除了可能会稍微增加内存消耗。除了观察每个服务的 CPU 使用率之外,它还可以很容易地观察每个服务的页面错误增量、磁盘 I/O 读取率和磁盘 I/O 写入率。对于 Process Explorer,菜单 View/Select Columns:选项卡 Process Memory/Page Fault Delta,选项卡 Process Performance/IO Delta Write Bytes,选项卡 Process Performance/IO Delta Read Bytes。


    在大多数系统上,只有一个具有大量服务的 SVCHOST.EXE 进程。我使用了这个序列(可以直接粘贴到命令行窗口中):

    rem  1. "Automatic Updates"
    SC Config wuauserv Type= own
    
    rem  2. "COM+ Event System"
    SC Config EventSystem Type= own
    
    rem  3. "Computer Browser"
    SC Config Browser Type= own
    
    rem  4. "Cryptographic Services"
    SC Config CryptSvc Type= own
    
    rem  5. "Distributed Link Tracking"
    SC Config TrkWks Type= own
    
    rem  6. "Help and Support"
    SC Config helpsvc Type= own
    
    rem  7. "Logical Disk Manager"
    SC Config dmserver Type= own
    
    rem  8. "Network Connections"
    SC Config Netman Type= own
    
    rem  9. "Network Location Awareness"
    SC Config NLA Type= own
    
    rem 10. "Remote Access Connection Manager"
    SC Config RasMan Type= own
    
    rem 11. "Secondary Logon"
    SC Config seclogon Type= own
    
    rem 12. "Server"
    SC Config lanmanserver Type= own
    
    rem 13. "Shell Hardware Detection"
    SC Config ShellHWDetection Type= own
    
    rem 14. "System Event Notification"
    SC Config SENS Type= own
    
    rem 15. "System Restore Service"
    SC Config srservice Type= own
    
    rem 16. "Task Scheduler"
    SC Config Schedule Type= own
    
    rem 17. "Telephony"
    SC Config TapiSrv Type= own
    
    rem 18. "Terminal Services"
    SC Config TermService Type= own
    
    rem 19. "Themes"
    SC Config Themes Type= own
    
    rem 20. "Windows Audio"
    SC Config AudioSrv Type= own
    
    rem 21. "Windows Firewall/Internet Connection Sharing (ICS)"
    SC Config SharedAccess Type= own
    
    rem 22. "Windows Management Instrumentation"
    SC Config winmgmt Type= own
    
    rem 23. "Wireless Configuration"
    SC Config WZCSVC Type= own
    
    rem 24. "Workstation"
    SC Config lanmanworkstation Type= own
    
    rem End.
    
    • 52
  2. splattne
    2009-05-27T09:35:24+08:002009-05-27T09:35:24+08:00

    您可以使用内置tasklist命令并按服务名称(/fi开关)过滤,例如:

     tasklist /fi "services eq TermService"
    

    输出:

    图像名称 PID 会话名称 会话# 内存使用
    =================================================== ========== ============
    svchost.exe 2940 控制台 0 7.096 K
    

    如果您不知道名称,可以通过运行以下语句列出它们:

     tasklist /svc /fi "imagename eq svchost.exe"
    

    它列出了 svchost.exe 托管的所有服务,例如:

    图像名称 PID 服务
    =================================================== ============================
    svchost.exe 632 DcomLaunch
    svchost.exe 684 RpcSs
    svchost.exe 748 Dhcp, Dnscache
    svchost.exe 788 LmHosts,W32Time
    svchost.exe 804 AeLookupSvc、AudioSrv、浏览器、CryptSvc、
                                       dmserver, EventSystem, helpvc,
                                       lanmanserver, lanmanworkstation, Messenger,
                                       Netman, Nla, RasMan, Schedule, seclogon,
                                       SENS、ShellHWDetection、TrkWks、winmgmt、
                                       wuauserv, WZCSVC
    svchost.exe 1140 ERSvc
    svchost.exe 1712 远程注册表
    svchost.exe 196 W3SVC
    svchost.exe 2940 术语服务
    svchost.exe 2420 TapiSrv
    

    服务不一定由svchost.exe. 因此,如果您找不到按执行文件名过滤的服务,只需运行tasklist /svc. 它将显示所有服务。

    • 21
  3. Chris T.
    2010-12-31T08:47:29+08:002010-12-31T08:47:29+08:00

    进程资源管理器确实会向您显示 svchost 中的个人内存使用情况 确保您从这里获得最新版本https://docs.microsoft.com/sysinternals/downloads/process-explorer

    确保以管理员身份运行 Process Explorer,单击要检查的 svchost,单击View DLLs按钮(或CTRL+D)。右键单击 DLLs 窗口中的标题Select Columns...,然后选中WS Total Bytes,然后点击OK.

    现在您可以查看和排序 svchost 中各个服务(由 dll 实现)的内存使用情况。

    • 10
  4. Sean Earp
    2009-06-08T09:23:52+08:002009-06-08T09:23:52+08:00

    虽然 Process Monitor 是一个通用实用程序(除了为您洗碗之外,它会做所有事情),对于这个特定的问题,您想使用 VMMap(另一个 SysInternals 实用程序)

    https://docs.microsoft.com/sysinternals/downloads/vmmap

    VMMap 是一个进程虚拟和物理内存分析实用程序。它显示了进程提交的虚拟内存类型的细分以及操作系统分配给这些类型的物理内存(工作集)的数量。除了内存使用的图形表示之外,VMMap 还显示摘要信息和详细的进程内存映射。强大的过滤和刷新功能使您可以识别进程内存使用的来源和应用程序功能的内存成本。

    除了用于分析实时进程的灵活视图外,VMMap 还支持以多种形式导出数据,包括保留所有信息以便您可以重新加载的本机格式。它还包括启用脚本场景的命令行选项。

    • 7
  5. user2278
    2009-05-27T08:51:50+08:002009-05-27T08:51:50+08:00

    这进入了 stackoverflow 领域,但是如果您可以掌握每个线程的内存统计信息,则可以通过将它们与线程堆栈中列出的 dll 匹配来大致将其与单个服务 dll 相关联。不过,对于我小小的系统管理员大脑来说,太多了​​。

    • 3
  6. sken130
    2015-03-10T22:59:18+08:002015-03-10T22:59:18+08:00

    我在这里扩展了 Peter Mortensen 的回答。在修改服务类型之前,请通过以下命令检查现有类型:

    sc query wuauserv
    

    这将输出以下内容:

        TYPE               : 20  WIN32_SHARE_PROCESS
        STATE              : 1  STOPPED
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
    

    不应修改“10 WIN32_OWN_PROCESS”、“20 WIN32_SHARE_PROCESS”以外的任何类型。

    • 2
  7. Michael Böckling
    2013-02-27T09:31:05+08:002013-02-27T09:31:05+08:00

    分离服务是正确的答案,但 sc config 命令对我不起作用(2008 R2)。

    不过,您可以通过注册表执行此操作,这意味着将“类型”参数设置为 0x00000010(12 月 16 日):

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\<ServiceName>\Type
    

    请注意您选择修改的服务,除了“拥有”和“共享”之外,还有一些特殊类型不应更改,例如:

    • 核心
    • 文件系统
    • 记录
    • 适应

    之后,只需重新启动服务,您应该会在 ProcessExplorer 中看到它现在拥有自己的 svchost.exe 进程。

    • 1

相关问题

  • 您最喜欢的云计算提供商是什么?[关闭]

  • Vanilla Powershell 是否足以成为 Windows 和 DB 服务器管理员的语言?

  • 为什么添加新驱动器后我的磁盘驱动器访问速度如此之慢?

  • 在 Windows Server 2003 下使用 wscipt 从 .asp 文件运行 .exe

  • 最佳混合环境(OS X + Windows)备份?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve