windows 2012 R2 发现内存占用90%多

经网络查询得到2008R2 之前一些老系统的解决方法:

1.用RamMap 工具查看内存的详细使用情况(因widnows 2012 R2在其他网络不与互联网连通,用的是本机运行后的截图).

RamMap

2.选择清空系统工作集后可以释放一些内存

3.2012R2 为什么也会出现还在研究中。。。

以前2008的解决方案: 

     Metafile可以理解为系统缓存,Windows server 2008系统中,比如存在大量的文件拷贝等磁盘io操作,系统会自动将其缓存到内存中,这部分被占用的内存在任务管理器的中未体现出来的,所以用户会认为系统的内存占用异常。同时,MetaFile默认是没有限制的,所以系统会无限制占用内存。 但是对于Windows 2012之后,操作系统会自动限制系统缓存的上限从而避免物理内存的耗尽。

    看了图元文件的解释后,发现前两天一直在做转移文件的操作,几百G的大量小文件在不同磁盘中转移,从而导致内存占用过高,符合此解释。至此,问题调查清楚。

Microsoft Windows Dynamic Cache的更新程序,用户可以下载后添加到服务中,通过修改注册表来限制动态缓存的最大值,比如设置上限为200M等,这样系统就可以把作为缓存使用的内存设置了上限值。

下载地址: Download Microsoft Windows Dynamic Cache Service from Official Microsoft Download Center

具体设置步骤如下:

1. 解压后根据不同系统版本中对应的DynCache.exe文件复制到C:\windows\system32中。

2. 以管理员身份打开命令提示符,执行如下命令添加服务:

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

3. 回到DynCache文件夹,找到DynCache.reg的注册表文件导入。

4. 打开注册表,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters

5. 右侧找到MaxSystemCacheMBytes,双击它,这里我们选择“十进制”,在数值里输入要限制最大的缓存数(单位是MB),输入800就是限制缓存最大为800MB,输入0为不限制。

6. 到服务中启动DynCache服务。

注:下载的dyncache解压出来是有多几个版本可选的,请选择retail amd64的版本,不要选择ia64(ia64表示安腾的64位处理器版本)。


版权声明:本文为ynchyong原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。