当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 修复 Windows Server 2008 R2 上图元文件的高内存使用问题

作者:精品下载站 日期:2024-12-14 22:48:43 浏览:13 分类:玩电脑

修复 Windows Server 2008 R2 上图元文件的高内存使用问题


其中一台运行 Windows Server 2008 R2 的文件服务器遇到了高 RAM 负载问题,导致服务器和应用程序性能出现问题。结果发现,内存被包含文件系统元数据系统文件缓存淹没了。该问题可能会影响所有包含大量用户访问文件的文件服务器。对于x64 Windows版本来说最为关键,其中内存中的元数据文件的大小几乎可以扩大到RAM的整个大小。

Windows 文件服务器上的高 RAM 负载

问题的表现如下:在任务管理器中,我们看到物理内存的繁忙程度为 95-99%。

[玩转系统] 修复 Windows Server 2008 R2 上图元文件的高内存使用问题

进程选项卡中,没有任何内存消耗异常高的泄漏进程。此外,如果将所有进程使用的内存的近似值相加,您甚至无法获得服务器上物理内存的 50%。那么到底是什么在吞噬记忆呢?

[玩转系统] 修复 Windows Server 2008 R2 上图元文件的高内存使用问题

RAM 使用情况的实际数据可以借助小型实用程序 - RAMMap(由 Mark Russinovich)获得。下载包含该工具的存档并以管理员权限运行 RAMMap.exe。在使用计数选项卡中,我们看到图元文件正在使用最大量的RAM。 (在我们的例子中,它使用 25 GB 的服务器 RAM 中的 11 个)。

[玩转系统] 修复 Windows Server 2008 R2 上图元文件的高内存使用问题

Windows 中的图元文件是什么?

图元文件是包含 NTFS 元数据的系统缓存的一部分,用于提高文件系统访问文件时的性能。 NTFS元数据包括MFT(主文件表)的数据。对于用户访问的每个文件或文件夹,在元文件中都会创建一个至少1KB的对应块(每个文件的属性记录为1KB,每个文件至少有一个属性)。因此,在具有大量文件的文件服务器上,图元文件大小(NTFS 缓存)可能会超过几十 GB。

无法禁用此缓存或使用内置 Windows 工具对其进行管理。作为解决方案,您可以增加服务器上的内存大小,但这并不总是可行。

要释放内存,您可以重新启动服务器,但在一段时间后,内存中图元文件的大小开始难以置信地增长。

例如,您可以使用 Russinovich 的另一个工具 - ntfsinfo 来估计 MFT 的大小。在我们的示例中,2 TB 磁盘上的 MFT 大小为 13 GB。

[玩转系统] 修复 Windows Server 2008 R2 上图元文件的高内存使用问题

如何快速清理图元文件

RAMMap 允许快速清除 MFT 垃圾中已使用的内存,而无需重新启动服务器。为此,请在菜单中选择清空 -> 清空系统工作集

[玩转系统] 修复 Windows Server 2008 R2 上图元文件的高内存使用问题

之后,内存中图元文件的大小减少了数十倍,CPU占用RAM的百分比从95%下降到26%。

[玩转系统] 修复 Windows Server 2008 R2 上图元文件的高内存使用问题

这种方法的主要缺点是清算是手动的,不能自动完成。

用于管理文件缓存的动态缓存服务

文件系统图元文件造成的高内存负载的另一个更重要的解决方案是安装动态 缓存 服务 (http://www.microsoft.com/en-us/download/details.aspx?id=9258)。此服务允许使用系统 API 管理专用 MFT 缓存的参数。

重要仅当出现上述问题时才使用此解决方案。安装此服务并不是解决服务器内存使用率过高的其他原因的通用解决方案。

安装 DynCache 相当容易(存档中有详细说明)。

  • 将文件 DynCache.exe 复制到 %SystemRoot%\System32 文件夹

  • 使用以下命令创建DynCache服务

    sc create DynCache binpath= %SystemRoot%\System32\DynCache.exe start= auto type= own DisplayName= "Dynamic Cache Service"

    [玩转系统] 修复 Windows Server 2008 R2 上图元文件的高内存使用问题

  • DynCache.reg导入注册表(它包含默认值)

  • 更改以下注册表项的值:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters

    1. MaxSystemCacheMBytes:4096 (dec) - 最大缓存大小 (Mb)

  • MinSystemCacheMBytes:100 (dec) - 最小缓存大小 (MB)

    [玩转系统] 修复 Windows Server 2008 R2 上图元文件的高内存使用问题

  • 注意。这些和其他 DynCache 服务设置必须根据 RAM 大小、服务器负载、所需性能等进行编辑。通常,不建议将缓存大小设置为超过服务器上安装的物理 RAM 的一半。进行更改后,您无需重新启动 DynCache,因为所有更改都会动态应用。

  • 使用以下命令运行服务:

    sc start DynCache

在我们的例子中,安装 DynCache 服务后,图元文件使用的内存不再超过我们设置的 4 GB。用户尚未报告文件服务器上有任何性能问题。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯