如何找到Windows 7中的内存泄漏源?


10

我有一台Windows 7计算机,该计算机的RAM一直保持不足。我可以看到空闲的RAM在几个小时内逐渐减少,直到机器无响应为止。我检查了进程列表,但没有一个占用那么多的RAM。

我还检查了每个进程的句柄数量以及其他各种指标,但是仍然找不到为什么计算机内存不足的原因。

有什么好的方法可以检查Windows中内存的使用方式?

编辑

这是tasklist机器无响应几分钟后的结果:

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
System Idle Process              0 Services                   0         24 K
System                           4 Services                   0        300 K
smss.exe                       196 Services                   0      1,024 K
csrss.exe                      272 Services                   0      4,336 K
wininit.exe                    320 Services                   0      4,184 K
csrss.exe                      332 Console                    1      3,516 K
winlogon.exe                   372 Console                    1      6,316 K
services.exe                   416 Services                   0      8,112 K
lsass.exe                      432 Services                   0     10,088 K
lsm.exe                        440 Services                   0      3,664 K
svchost.exe                    548 Services                   0      8,152 K
svchost.exe                    620 Services                   0      6,564 K
svchost.exe                    660 Services                   0     15,764 K
LogonUI.exe                    724 Console                    1     18,428 K
svchost.exe                    768 Services                   0      7,992 K
svchost.exe                    828 Services                   0      9,724 K
svchost.exe                    852 Services                   0     28,092 K
svchost.exe                    176 Services                   0     13,096 K
spoolsv.exe                    824 Services                   0     10,608 K
svchost.exe                    952 Services                   0     11,632 K
svchost.exe                   1076 Services                   0      8,524 K
fshoster32.exe                1120 Services                   0      9,148 K
fsorsp.exe                    1200 Services                   0      8,036 K
fsgk32.exe                    1324 Services                   0      3,084 K
cygrunsrv.exe                 1552 Services                   0      5,852 K
conhost.exe                   1864 Services                   0      2,996 K
sshd.exe                      1896 Services                   0      7,804 K
FSMA32.EXE                    2024 Services                   0      1,628 K
svchost.exe                   1320 Services                   0      5,092 K
fssm32.exe                    1704 Services                   0      2,196 K
FSHDLL64.EXE                  2120 Services                   0        644 K
SearchIndexer.exe             3260 Services                   0     13,596 K
sshd.exe                    138920 Services                   0      8,696 K
sshd.exe                    138448 Services                   0      8,696 K
sshd.exe                    138660 Services                   0      8,696 K
bash.exe                    137924 Services                   0      5,380 K
bash.exe                    137820 Services                   0      3,832 K
SAV32CLI.EXE                136344 Services                   0    133,868 K
WmiPrvSE.exe                139444 Services                   0      7,168 K
sshd.exe                    139672 Services                   0      8,692 K
sshd.exe                    139876 Services                   0      8,684 K
bash.exe                    139992 Services                   0      5,432 K
bash.exe                    140040 Services                   0      3,996 K
bash.exe                    140200 Services                   0      5,400 K
bash.exe                    139424 Services                   0      4,048 K
typeperf.exe                139300 Services                   0      5,372 K
sleep.exe                   138268 Services                   0      2,272 K
sshd.exe                    139612 Services                   0      7,168 K
sshd.exe                    137720 Services                   0      5,700 K
bash.exe                    139524 Services                   0      5,304 K
bash.exe                    138952 Services                   0      3,756 K
tasklist.exe                137580 Services                   0      5,164 K
bash.exe                    139460 Services                   0      5,452 K
bash.exe                    139796 Services                   0        104 K

届时,wmic OS get FreePhysicalMemory /Value报告的可用内存为2 GB之外的大约400 MB。

RamMap:

在此处输入图片说明

任务管理器:

在此处输入图片说明


1
您可以重新启动计算机并发布任务管理器进程的屏幕截图吗?并确保显示所有用户的流程。如果您在重新启动后有超过50-60然后,肯定有事情可以做,但如果没有看上去那么腥事情会变得棘手..
MonkeyZeus

1
您是否耗尽了虚拟内存或物理内存。解决方法和原因不同。虚拟内存不足警告是一个配置问题,物理内存不足,这意味着您必须运行许多进程。
Ramhound 2014年

1
您是否有任何证据表明原因是内存泄漏?听起来您有充分的证据表明这不是内存泄漏。(我想,尽管它可能是一个糟糕的司机)
David Schwartz

感谢您的反馈。我在帖子中添加了更多信息,特别是任务列表。空闲的物理内存会随着时间的推移不断下降。是否可以检查其用法?
劳伦特2014年

Answers:


8

高内存usgae来自高页表使用率。要查看哪些进程使用它,请安装Windows Performance Toolkit,以admin身份打开命令提示符并运行以下命令:

xperf -on ReferenceSet -BufferSize 1024 -MaxFile 512 -FileMode Circular  && timeout 5 && xperf -d MemUsage.etl

MemUsage.etl使用Windows Performance Analyzer(WPA.exe)打开,将“ ResidentSet”图从左图列表拖放到分析窗格中:

在此处输入图片说明

现在将“页面类别”列移到左侧,并展开“页面表”条目:

在此处输入图片说明

在这里,您可以看到具有很高的页表使用率的进程。在右侧站点(蓝线之后),您会看到每个进程的页表内存使用量(MB)。


在Windows8.1中,我看不到“ residentset”作为可用的图形选项。我怎么才能得到它?一个不同的xperf标志?
akira 2014年

我回答我自己的评论:更新xperf。
akira 2014年

这并不在Windows 7中对我的工作-第一个电话xperf给人xperf: error: NT Kernel Logger: Invalid flags. (0x3ec).
benshepherd

@benshepherd对我来说有效。确保使用8.1 SDK中的最新WPT:dropbox.com/s/e5ol59a6n9g3ctb/Win7_xperf.png
magicandre1981

1
我最终发现了问题,这是联想的“ RapidBoot Shield”,将其删除解决了我的问题:superuser.com/a/850346/79763
sparrowt 2014年

0

我在这里可以看到的唯一“奇怪”的东西是:

  • 您有一个名为的进程scan.exe现在占用了98%的CPU
  • 您有一个名为的进程fssm32.exe,该进程有900万个页面错误。fssm32.exe看起来像f-secure病毒扫描程序中的程序。
  • 您也有一个名为的进程SAV32CLI.EXE占用了另外130mb +的内存。您似乎可以更好地保护自己同时运行2个病毒扫描程序:f-secure和sophos。

rammap屏幕快照对我来说还不错:您有一个约400mb的缓存文件池,其中85mb处于活动状态,300mb +处于待机状态(这意味着它们会在需要更多ram时立即释放)。查看您的sshd.exe和bash.exe进程的数量,这看起来也很合法。

了解Windows如何管理内存的内部工作的最佳方法是此处的演讲:http : //channel9.msdn.com/Events/TechEd/NorthAmerica/2011/WCL405 ..您已经在使用扬声器开发的某些工具。


1
我的Microsoft联系人(Microsoft Premier Field Engineers)也告诉我,Windows无法正常使用几页100MB的页表。
magicandre1981
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.