在Windows 7中,是否有办法知道服务正在使用多少内存?


9

在Windows 7中,是否有一种方法(通过使用公共界面或自定义实用程序)来了解特定Windows服务正在使用多少内存?

似乎大多数服务都由svchost.exe进程托管(某些svchosts.exe进程似乎托管大量服务)。虽然可以知道特定进程托管了哪些服务,但我找不到方法来获取有关服务占用多少内存的信息。


2
看一下流程浏览器,它可以识别嵌套的流程,并且可以很好地了解系统中正在发生的一切。 technet.microsoft.com/zh-cn/sysinternals/bb896653.aspx
jmreicha 2012年

您可以在此SO答案中看到一个脚本来检查各个服务的内存。
Rosberg Linhares

Answers:


13

查看SysInternals工具套件中的Process Explorer。按process名称对列进行排序,然后找到svchost。然后,您可以在描述字段中(有时)看到正在运行的实际服务。该Private Bytes列将向您显示该特定服务在内存中使用了多少。 在此处输入图片说明


我是否应该查看“专用字节”而不是“工作集”(或“虚拟大小”)?
tigrou 2012年

1
@tigrou 工作集是最近引用的内存,您通常会看到它少于私有字节。专用字节是该进程当前分配的内存,未与任何其他进程共享。请参阅此StackOverflow问题。
PenguinCoder 2012年

2
问题的全部重点是确定共享单个svchost主机进程的各个服务的内存统计信息。这个答案根本没有解决。
kreemoweet 2014年

@kreemoweet您没有看截图吗??在许多位置使用scvhost.exe分解为服务。
PenguinCoder 2014年

1
正如@kreemoweet观察到的那样,这不能回答所陈述的问题,即有关多个服务何时使用同一进程的问题。可在“服务器故障”中找到问题的答案:您可以将每个服务配置为使用其自己的进程
Christian Conkle

6

通过使用任务管理器(Ctrl+ Shift+ Escape),您可以右键单击该svchost进程并选择Go to service(s),它将突出显示该进程中托管的服务。

或者,通过在“处理”选项卡中选择“ PID”列,然后可以在“服务”选项卡中匹配PID。


1

您也可以使用Windows Task Manager中的构建,然后转到“视图”>“选择列”>,然后选择显示“内存”的内容,这应该是大约7个,它们都为您提供了有关程序当时实际运行方式的不同想法。


-1

还有资源监控器。Windows 7和2k8r2的新功能。这就像类固醇的任务管理器。不知道为什么没人使用这个。根据我的经验,解决问题实际上比使用流程浏览器容易。在任务管理器打开的情况下,只需单击性能选项卡上的“资源监视器”按钮。


1
它会提供什么信息?屏幕截图如何?您还可以只写2008 R2而不是缩写吗,尤其是当它仅剩2个字符时?这个答案的质量很低。请进行修改以改善它。
加拿大卢克
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.