为什么我的8GB RAM的一半丢失了?


26

坐了8GB RAM已有2年了,仍然以为我还需要4GB,并且从未质疑为什么我经常收到有关物理内存不足的消息,如果不注意的话,它们会关闭所有打开的程序(主要是Firefox,因为它主要是我使用的)立即。然后,我将不得不使用大多数内存(Firefox就是其中之一)重新启动程序,以继续正常工作,并且不会丢失任何未保存的更改。

无论如何,II已经注意到,尽管系统看到8GB的RAM,但它仍然使用一半的RAM,我将通过屏幕快照进一步演示这一点。

系统信息和任务管理器的组合屏幕截图:

在此处输入图片说明

资源监视器屏幕截图:

在此处输入图片说明 在此处输入图片说明

RAMMap屏幕截图:

在此处输入图片说明

最后是我的swapfile条件一次又一次发生。关键是它一直都很大:

在此处输入图片说明

注意上面的屏幕截图中的“ Available ”和“ Free ”内存。这是我大部分时间在任务管理器中看到的,在Firefox中打开另一个5-7选项卡会导致出现“ 内存不足 ”警告。

当前使用的主视频卡:

在此处输入图片说明

有什么想法吗?

WLTRAY.EXE 这里没有提到,但是看一下:

在此处输入图片说明

系统规格

  • 戴尔Latitude E6420
  • 8GB RAM,120GB Intel SSD
  • 英特尔高清显卡,nVidia NVS4200M
  • Windows Enterprise 64位

更新2014年5月3日-我认为无线适配器过程没有问题。我仍然认为这与Firefox有关。这是任务管理器的屏幕截图:

在此处输入图片说明 RamMap:

在此处输入图片说明

VMMap:

在此处输入图片说明

更新:01/04/15

看来我的整个系统都有内存泄漏。我尝试使用Chrome并最终与Firefox一起使用,它崩溃并显示以下消息,或者导致BSOD或黑屏,其中重新启动是重新工作的唯一方法。

这是我的Chrome浏览器,在重新启动几个小时后运行,其中包含29个标签:

Windows任务管理器

在此处输入图片说明

资源监控器

在此处输入图片说明

Chrome任务管理器

在此处输入图片说明

我重新启动了Chrome,以下是统计信息:

Windows任务管理器

在此处输入图片说明

资源监控器

在此处输入图片说明

Chrome任务管理器

在此处输入图片说明


在Vista上是系统属性/高级/性能选项/高级/虚拟内存更改-选项是否设置为“自动管理所有驱动器的页面文件大小”?
Daniel R Hicks

12
据我所知,没有Windows有关物理内存不足的警告。该警告指的是虚拟内存不足,并且当所有进程的已提交内存超过物理内存和页面文件空间的总和时,就会发生此警告。您的页面文件很小。这引起了问题。
大卫·马歇尔

1
您错过了最重要的屏幕截图:资源监视器中“内存”选项卡下部的图形。
Daniel B

好吧,我不能完全帮助您,但是问题的根源很明显:“写磁盘缓冲区”占用了大量内存。
Daniel B

2
@Boris_yo - You want your page file to be filled不,你不;您需要在触摸磁盘之前先填充物理RAM。
Synetech 2014年

Answers:


17

“为什么我的8GB RAM缺少一半?”

它不会丢失,甚至不会被使用。大约有4GiB处于活动状态,另外3.3GiB处于非活动状态,但也处于使用状态。3.3GiB已准备好分页到磁盘,但是您没有为其分配空间,因此它保留在物理RAM中。如果磁盘页面不足,“修改的”内存实际上与“使用中”没有区别。

既不是64位操作系统也不PAE使任何32位进程使用超过4GiB(2用户/ 2内核在32位/ PAE,在x64 4GiB用户请参阅:推进视窗界限:虚拟内存)的存储器内存当前是分页到物理RAM还是磁盘上。

因此,对于没有64位版本的Firefox,这意味着Firefox最终将受限于2GiB(PAE)或4GiB(x64)用户空间内存,而不考虑已安装的RAM。即使您安装了64GiB物理RAM,如果Firefox使用率超出限制,它将耗尽其内存限制。

这看起来过多,可能表明存在内存或句柄泄漏。更糟糕的是,在您的情况下,页面文件的大小不足以将任何泄漏的进程移至磁盘,因此您实际上已迫使泄漏到物理RAM中。

在TechNet文章Win7 x64中有过多“修改”的内存使用问题,高达3.6GB,有什么建议吗?,出现类似症状(共享/修改块较大)的用户发现:

修改后的内存是由某些应用程序分配的内存,然后从应用程序的工作集中删除,通常是因为它已经使用了很长时间了。您的大部分内存处于这种状态这一事实意味着两件事:

  1. 一些应用程序(或多个应用程序)分配了很多内存,并且没有积极使用其中的大部分内存。通常(但并非总是如此),这是由于应用程序中的内存泄漏引起的。
  2. 页面文件的大小不足以使系统将所有这些未使用的内存移至磁盘。

最后,正如magicandre1981所建议的那样,问题出在Dell无线(Broadcom)LAN托盘应用程序:

谢谢大家,我遇到了同样的问题,并添加了手柄和GDI,并看到Dell无线托盘工具BCMWLTRY.EXE正在不间断地创建手柄。谢谢你的建议。更新:因此,我禁用了启动BCMWLTRY.EXE的服务并重新启动,现在看不到句柄泄漏。WLTRAY.EXE仍在运行,但没有泄漏句柄。

同样,在共享内存过多的修改内存中

Dell wlan实用程序是原因。在任务管理器中杀死bcmwltry.exe进程释放了内存。但是此过程在几秒钟后再次开始。这有点糟糕-我无法将其卸载。幸运的是,无论如何这台笔记本电脑都需要更改操作系统,所以我什至不尝试解决此问题。...同样的问题在这里。杀死并禁用DW WLAN(bcmwltry.exe)释放了5 GB的内存。 漏了

纸盒应用程序BCMWLTRY.EXE同样也包含在Pagefile中,并且一直在增长,直到内存用尽

有关BCMWLTRY.EXE /戴尔无线托盘问题(WLTRAY.EXE),诊断和解决方案的其他参考:

因此,在这些情况下,实际上不是驱动程序,而是驱动程序随附的任务栏应用程序。我同意,鉴于您的无线卡的OEM,BCMWLTRY.EXE正在运行,并且存在大量几乎相同的问题,这是问题的一部分。

您还可以将“句柄”和“页面错误”列添加到任务管理器中,以检查是否存在过多使用错误程序的情况。您可以使用SysInternals VMMap从每个进程的角度查看虚拟内存的分配。句柄泄漏是隐患,因为它们也可能泄漏Windows对象。Microsoft提供了一个称为“ 应用程序验证程序”的工具,该工具除其他功能外,将有助于跟踪泄漏的句柄。

因此,答案是:您可能发生内存泄漏,很可能在BCMWLTRY.EXE(或某些其他应用程序泄漏句柄或类似的共享资源)中,并且OS饿死了磁盘支持的页面,以更加“优雅地” *处理此类事件。一个条件。


*内存泄漏没有什么特别的“优美”,但是〜4GiB页面文件将允许进程运行到其继承限制(充当配额),然后崩溃,从而在特定事件日志中创建明显的模式进程崩溃,然后释放所有资源,如果重新启动,请重复执行。没有固有的32位限制地址空间限制,它可能首先会占用大量磁盘空间。实际上,所有进程现在都受到资源的限制,因此不清楚是由于自身的泄漏(Firefox)还是由于另一个应用程序(BCMWLTRY)而关闭了该进程。


没有办法优雅地处理这种情况。用分页操作猛击磁盘肯定不是一个合适的解决方案。实际上,我怀疑小的页面文件为他节省了很多麻烦,因为他由于不断的页面调度而在系统完全无法使用之前陷入了内存泄漏。
Ben Voigt 2014年

@BenVoigt在这种情况下,优美可能不是最好的说法,但是在这种情况下快速失败是否有帮助,这无疑是有争议的。因为所有进程都是32位的,所以拥有〜4GiB页面文件将允许一个错误/泄漏的进程超过其地址容量,死掉,并以非常明显的周期(在事件日志中)返回内存,而所有其他进程都不会饿死内存进程(例如,Firefox造成的数据丢失)。64位OS上的64位失控过程会更成问题,配额在此很有帮助。
Maxx Daymon 2014年

在Mark Russinovich的博客《推动Windows的极限:虚拟内存》中,他详细介绍了选择页面文件大小的因素。最后,由用户决定是否要承受较高的负载数据丢失风险或较高的负载速度降低风险以及他们要承担多大的风险。虚拟内存的全部目的是允许进行该选择。
Maxx Daymon 2014年

该操作系统绝对是Windows 7的64位版本,因为“任务管理器”屏幕截图显示了8GB的总物理内存。在32位Windows 7上,该值不会超过4GB。
Andrew Medico'4

1
@AndrewMedico这是一个有争议的问题。正如and31415所指出的,OP使用的是64位。不过,PAE 在客户端x86的Windows中启用支援的电脑上,而是将其设定为允许> 4GiB看起来就像是一个违反了许可证,因此不适合在这里分享,但很多人尽管许可违规都是这么做的。
Maxx Daymon

13

您修改的内存列表太高(请参阅ResMon中的橙色大条)。这使用了超过3GB的RAM。一个已知的原因是旧的Broadcom Wifi驱动程序。如果您的笔记本电脑使用Broadcom Wifi适配器,请使用msconfig.exe更新驱动程序或停止BCMWLTRY.EXE的启动以进行修复。


我有DW1530 Wireless-N WLAN半迷你卡。有没有办法确定驱动程序级别的内存消耗?
Boris_yo 2014年

3
您能否提供参考以支持您的答案?
阿披吉特(Abhijit)2014年

@Abhijit-这个问题是众所周知的。我同意这个问题确实是由司机引起的。
Ramhound 2014年

1
内存泄漏BCMWLTRY.EXE的
Maxx Daymon

9
The problem is well known.也许吧,但这并不意味着即使是熟悉它的人,更不用说那些不熟悉它的人,也可以简单地诊断并诊断它,而无需链接到具有适当步骤的页面。如果您提到这样的内容,那么链接到它是合适的,而不是仅仅期望人们自己去寻找它。如果这是您的期望,那么您应该在评论中提及它,而不是回答。
Synetech

6

前段时间我在玩恶作剧,其中有人编辑了我的MSConfig设置,从而限制了我的最大内存,如下所示:

最大记忆

因此,这是另一个潜在原因。


感谢您的帮助,但没人对我恶作剧。
Boris_yo 2014年

4
这不是这里的问题。操作系统正在查看并使用所有8GB的RAM。
Andrew Medico'4

4

问题似乎是由于页面文件较小。根据您的屏幕截图,您的系统具有相当大的Modified Memory。“修改的内存”是在将页面文件移到备用文件之前等待写入页面文件的内存。增加页面文件将有效地减少修改后的内存,这将有效地增加待机和可用内存。


将额外的3GB的“修改后的内存”写入交换文件将不会完成任何事情,除非额外的3GB的磁盘写入,耗尽了他的SSD并减慢了需要执行磁盘I / O的其他程序的速度。
Ben Voigt 2014年

2
它肯定会完成一些事情:它将为实际想要主动使用它的进程释放3GB的RAM。
Andrew Medico

如果其他进程在I / O队列中等待,则具有可用RAM的其他进程将无济于事。拥有可用的RAM是暂时的,当发生如此大的泄漏时,您的时间只会加倍。
Ben Voigt 2014年

2

您的系统正在使用所有8GB的RAM,只是没有按您期望的那样高效地使用它。我看到系统上有大量缓存。当应用程序需要更多RAM时,Windows将自动减小缓存大小。

关于页面文件的大小,我引用一个实际上知道他们在说什么的人(马克·鲁西诺维奇):

我应该把分页文件多大?

与虚拟内存有关的最常见的问题之一可能是,我应该将页面文件的大小做成多少?在网络上以及涵盖Windows的报亭杂志上,没有任何荒谬的建议,甚至微软也发布了误导性的建议。几乎所有建议都是基于将RAM大小乘以某个因子得出的,常见值为1.2、1.5和2。

如果您想知道系统上正在发生的事情的真实情况,请立即停止并阅读Mark关于Windows内存管理的整个系列文章。在这方面,他可能是世界上最重要的权威。

我本人在Windows系统上设置了绝对最小页面文件大小(刚好足以保存小型转储),甚至完全禁用了它。您永远都不会在正常系统使用过程中命中该页面文件。如果这样做,那么您就该选择购买更多的RAM或关闭一些应用程序。

与人的时间尺度相关时,请考虑RAM与SSD或硬盘的速度。[存储类内存:技术,系统和应用程序-第22页]

  • RAM访问大约需要60ns的时间,相当于一个人类相关规模的1分钟。
  • SSD访问大约需要50us,这比RAM慢大约800倍,这在人类规模上大约需要14个小时。
  • 快速的硬盘访问需要5毫秒,这比RAM慢大约83,000倍,这在人类规模上大约需要60天。

您是否真的要让RAM半随机地移到比RAM慢1K倍或100K倍的存储设备上,只是因为您没有足够的RAM?

我还没有看到有人提出另一个要点,就是英特尔HD Graphics 3000芯片使用“共享内存”。从显示的屏幕快照中,它可以消耗多达1.7GB的RAM。因此,在那儿约占总RAM的1GB。


大约1GB?如果您认为操作系统要保留一些内存来与之通信,则它的容量可能会超过1.5GB(可能会更多)(接近2GB)。
Ramhound 2014年

英特尔驱动程序应该根据用户驱动系统的分辨率和颜色深度进行自我调整。因此,至少要立即腾出1GB的RAM,但是不错,根据用户的情况,英特尔驱动程序可以使用接近2GB的内存。使用Windows内置工具很难看到这种“不可见”的RAM使用情况。
Ausmith1 2014年

我说1.632GB的原因是因为那是屏幕快照显示的内容,除非我将其视为字面用法,否则将其用作文字用法。
Ramhound 2014年

是的,在该特定时间点使用1632 MB,在其他时间可能更多/更少。假设用户愿意忍受仅具有Nvidia GPU可用的后果(例如更多的电池使用量),禁用Intel HD视频可能是该系统最简单的解决方案。似乎需要付出很小的代价才能获得1.5GB的RAM。
Ausmith1 2014年

4
这个答案有点误导。您引用了马克·鲁西诺维奇(Mark Russinovich),但实际上并未遵循链接文章中的建议。
2014年

0

您的BIOS和驱动程序很好,物理内存也很好。搞乱硬件和BIOS设置将一无所获。问题是您的页面文件太小了。它应与已安装的物理内存一样大,但为512 MB,仅为该大小的1/16。要解决此问题,请执行以下操作:

转到控制面板/系统和安全性/系统/高级系统设置。

选择“高级”选项卡,然后单击“性能”下的“设置”按钮。

选择高级选项卡。

在虚拟内存下,单击更改。

选中标记为“自动管理所有驱动器的页面文件大小”的框。

现在,只需单击“确定”,然后根据需要重新启动。


Windows希望使用12GB的页面文件,我有120GB的SSD,目前有17.8GB的可用驱动器空间。我可以尝试,但是我认为12GB的页面文件对于我的非攻击性使用来说实在太大了。
Boris_yo 2014年

2
@Boris_yo为什么不获得标准的500GB或1TB HDD来存储不需要在SSD上存储的所有内容?无论如何,由于TRIM的工作原理,SSD几乎无法满载是不健康的,而且我很确定您可以根据需要将页面文件移动到另一个位置(例如HDD)。
托马斯

@托马斯说什么。您的SSD过载。拥有80%的固态硬盘通常是一个坏主意,并且您始终希望系统驱动器上至少有20 GB的可用空间。一个页面文件的12 GB应该不是问题,因此您需要将至少20 GB的负载卸载到另一个驱动器,或者只是找到一种释放这么多空间的方法。
Carey Gregory

无论如何,您都不应该调出SSD。
Daniel R Hicks

(基本上,Windows不会为应用程序使用的空间多于页面文件空间。)
Daniel R Hicks

0

Windows 7主动缓存信息。这很大程度上是使其性能比Vista更好的原因。如果您的程序需要它,您仍然可以自由使用大量内存,仅仅是Windows试图变得更聪明,然后猜测您的计算机将需要什么或接下来要访问什么,因此它将信息预加载(缓存)到RAM中以获取访问了很多。由于Windows不必再在硬盘上搜索此信息,因此Windows可以更快地运行。

http://arstechnica.com/information-technology/2010/02/behind-the-windows-7-memory-usage-scaremongering/


-1

最简单的方法是更新计算机驱动程序,尤其是BIOS和芯片组。只是firefox运行得如此之快,然后我将进行深度扫描以查看您的系统上是否正在运行任何bot,之后,我将在firefox上逐个禁用插件和附加组件以查看如果它减轻症状。当然,做上面提到的事情也不会有什么坏处,因为这应该是常规维护,即使它可能无法解决您的问题。


1
我运行机器人意味着什么?
Boris_yo 2014年

他的意思是恶意软件等。
Ausmith2014年
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.