![Windows 7 近期的 RAM 问题 - 内存慢慢填满](https://linux22.com/image/1432475/Windows%207%20%E8%BF%91%E6%9C%9F%E7%9A%84%20RAM%20%E9%97%AE%E9%A2%98%20-%20%E5%86%85%E5%AD%98%E6%85%A2%E6%85%A2%E5%A1%AB%E6%BB%A1.png)
在我说任何话之前,我想让大家知道我在这个问题上经历了什么:
- 我已经运行了多个 AV 扫描,包括:Malwarebytes、Sophos Virus Removal、ADWCleaner、ESET Smart Security 4 和 Hitman Pro,它们确实发现了一些 PUP 并将其删除。
- 我已经安装了 RAMMap、带有 Poolmon 和 Process Explorer 的 Windows WDK。
- 我已经更新了所有驱动程序,禁用了所有无用的(即未使用/不需要的)进程和服务,并在昨天和今天(问题开始时)多次重新启动了我的计算机。
- 当我谈论这个问题时,不要告诉我“未使用的 RAM 是浪费的 RAM”是我的问题的有效答案。问题没那么简单。当我的 RAM 写满时,我会遇到以前从未遇到过的性能问题和系统速度变慢的情况,包括 RAM 达到最大值以及系统在达到最大值时出现卡顿/性能问题,迫使我重新启动计算机。
以下是我的系统规格:
操作系统:MS Windows 7 Ultimate 64位SP1
CPU:Intel Core i7 960 @ 3.20GHz 48 °C Bloomfield 45nm 技术
内存:6.0GB 三通道 DDR3 @ 534MHz (8-8-8-20)
主板:华硕电脑股份有限公司 SABERTOOTH X58 (LGA1366) 35 °C
显卡:NVIDIA GeForce GTX 670
硬盘:2930GB Seagate ST3000DM001-1CH166 ATA 设备 (SATA) 30 °C
音频:Realtek 高清晰度音频(来自主板)
我使用poolmon发现我有一个名为“Proc”的驱动程序或其他东西没有释放空闲空间并且正在稳步增加。
如您所见,Proc 有 10 次释放,使用了 46205040 字节。而且这个数字一直在攀升。
我从pooltag.txt(如果有人正在阅读此文件并且想知道在哪里可以找到此文件,可以查看此处:Y:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\triage)中找到了以下描述:“Proc - nt!ps - Process Objects”,鉴于通用描述,该描述毫无意义。无论哪种方式,当我运行高度密集的进程(例如通常占用 1.6GB RAM 的《魔兽世界》)时,这个问题似乎会加剧。
当该进程结束时,RAM 使用率保持不变,就好像程序从未关闭过一样。当我查看 RAM 映射时,有时超过 1.5GB 处于待机状态。即使我在 RAMMap 中清除它,它也不会清除它,并且不会释放该 RAM 以供重复使用。
正如您在此处看到的,我已经使用了 2.9GB(由于 Firefox、Skype 和其他一些程序),但我有超过 1.5GB 的待机空间未使用,并且 TaskManager 和 Process Explorer 报告我使用的接近 4GB。
我注意到的另一个问题是:由于互联网出现一些延迟问题,我更新了以太网驱动程序(更换了调制解调器,然后更新了它们)。问题消失了。我离开家过感恩节大约一个星期,当时我的电脑处于关闭状态。当我回到家时,我注意到进程:“svchost -k LocalSystemNetworkRestricted”、“svchost -k netsvcs”有时会使用超过 500-700MB 的 RAM,这是我以前从未见过的。现在它占用了大约 164MB,但在我离开之前,我甚至没有看到它接近这个数字。
我检查了所有程序,卸载了离开前安装的几个程序,然后进行了病毒扫描,删除了更多东西,甚至回滚了我的以太网驱动程序。我对 Windows 7 的唯一更新是 Windows Defender(我随后禁用了它)。然而,这种奇怪的行为仍然存在。
简而言之:
- PoolMon.exe 中显示的驱动程序或系统资源“Proc”(完整描述:“Proc - nt!ps - 进程对象”)使用的字节数稳步上升,但并未释放它们,最终导致 RAM 达到最大值并导致系统不稳定和卡顿
- 尽管系统几乎没有任何变化,“svchost -k LocalSystemNetworkRestricted”和“svchost -k netsvcs”进程的 RAM 使用率有所增加。
如果有人可以帮助我,请告诉我。
答案1
编辑:看来我已经解决了我的问题。
我将非常详细地介绍这个问题,以防其他人可能同时遇到同样的问题并找到这个方法并且它对他们有用。
我安装了 ESET SmartSecurity 4 以及 Acronis 的 True Image Home 2013。我最终使用了驱动程序验证程序(只需在开始栏中输入验证程序即可)。注意:如果驱动程序出现故障,可能会导致您遇到蓝屏。请创建系统还原点并准备好 Windows 恢复磁盘,或者确保您可以进入安全模式并通过命令行将其禁用:verifier /reset)。
因此,在我禁用 Acronis TIB Mounter 设备后,它检测到了错误的驱动程序,该设备用于安装 TIB 备份,其“启动前”软件安装在您的系统上,并且似乎还控制着您 USB 驱动器的所有功能,这是我不知道的。这个来自 Acronis 的驱动程序名为 fltserv.sys(位于:C:\Windows\System32\drivers\fltsrv.sys)。我最终陷入了无休止的蓝屏循环,但也无法启动到安全模式,因为我已禁用 TIB 挂载器,这允许程序控制安全模式启动(我猜它这样做是为了能够进行备份,无论您的 Windows 安装状态如何)。
于是我启动了 Windows 修复 USB,在尝试了大约 2 小时的 FIXMBR 和 SFC /scannow 以及其他各种操作后,我打开了驱动程序验证程序(只需在恢复 CMD 中输入 verifier 即可),只是为了好玩,禁用它。由于我的恢复磁盘不允许我访问 Windows 驱动器来删除 .sys 文件,所以我认为我此时运气不佳。我按下“显示有关当前已验证驱动程序的信息”按钮,然后点击下一步。我决定点击右窗格下方的“添加”按钮,你知道吗,它会弹出一个资源管理器窗口,让你查看 .sys 文件。所以我导航到它的路径,删除它,重新启动,然后就可以登录了。
之后,我使用 Acronis 删除工具(可在此处找到:)彻底卸载了 Acronis True Image Home 2013http://dl.acronis.com/u/support/atih_cleanup_tool_s_e.exe 路线指引在这里:https://kb.acronis.com/content/34876)。
完成这些操作后,我遇到了严重的 CPU 问题,因此我卸载了 ESET Smart Security,禁用了驱动程序验证程序,然后重新启动。我安装了 Eset Smart Security 8,现在一切似乎都很好。据我所知,在 Firefox 和其他几个程序打开的情况下,我的内存非常稳定,大约为 2.7GB。如果遇到问题,我可能会再次使用 Poolmon。
真是一段旅程。我不确定是 Acronis 还是 ESET 出了问题,但至少我的问题解决了。
结束编辑
@大卫
以下是 ProcessExplorer 中当前正在运行的进程和详细的内存使用情况:
Rammap 文件
Rammap 流程
答案2
我有超过 1.5GB 的待机空间未使用
您所指的 1.5GB 被标记为没用过非待机状态。此 1.5GB 内存归零
- 记忆标记支持将在需要时使用。
- 记忆标记归零将在需要时使用。
支持:
未被积极使用的物理 RAM 页。这些页仍留在物理 RAM 中,但如果某些内容需要物理内存来存储活动页面,则将首先由内存管理器重新利用(返回到活动列表或清零并重新使用)。待机页面本质上是缓存– 最好将不常用的数据保存在 RAM 中“以防万一”,而不是在内存不需要用于其他任何操作时将其推送到磁盘。
归零:
已清零的页面随时可用——可以快速分配给新的物理内存。通常,只有在系统启动后,您才会看到大量的清零页面。在系统“稳定”后,您可能会看到这些页面在待机列表中的某个位置被用作缓存。