系统环境:
Windows Server 2008 R2 + Sql Server 2008 R2
 
问题描述:
Windows Server 2008 R2系统内存占用率过大,而在任务管理器中各进程内存占用总和都远不到此占用率。
相关现象:
1. 内存占用率90%以上
2. 任务管理器中所有进程内存和较低,远不到90%,有二十多G的内存偏差
 
分析过程:
 
  1. 首先怀疑SQL Server内存占用,但是SQL Server设置了最大内存,且任务管理器中显示的内存占比并没有达到很高,排除此原因
  2. 用RamMap工具查看内存的详细使用情况,发现图元文件(Metafile)占用了二十多G的内存,应该与此有关
 
解决方法:利用RamMap的“清空系统工作集”功能,可以释放内存。
 
图元文件(Metafile):
     Metafile可以理解为系统缓存,Windows server 2008系统中,比如存在大量的文件拷贝等磁盘io操作,系统会自动将其缓存到内存中,这部分被占用的内存在任务管理器的中未体现出来的,所以用户会认为系统的内存占用异常。同时,MetaFile默认是没有限制的,所以系统会无限制占用内存。 但是对于Windows 2012之后,操作系统会自动限制系统缓存的上限从而避免物理内存的耗尽。
    看了图元文件的解释后,发现前两天一直在做转移文件的操作,几百G的大量小文件在不同磁盘中转移,从而导致内存占用过高,符合此解释。至此,问题调查清楚。
 
如下, 是微软官方Blog中介绍修改注册表来限制动态缓存的方法:
Microsoft Windows Dynamic Cache的更新程序,用户可以下载后添加到服务中,通过修改注册表来限制动态缓存的最大值,比如设置上限为200M等,这样系统就可以把作为缓存使用的内存设置了上限值。
具体设置步骤如下:
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位处理器版本)。

Windows Server 2008 R2服务器内存使用率过高,但与任务管理器中进程占用内存和不一致的更多相关文章

  1. Windows Server 2008 R2 服务器内存使用率过高几乎耗光

    系统环境: Windows Server 2008 R2 Enterprise 搭建有 web服务器(iis) 和  文件服务   问题描述: Windows Server 2008 R2系统内存耗光 ...

  2. Windows Server 2008 R2 服务器系统安装及配置全过程图文详解

    前言 本文主要介绍了 windows Server 2008 R2 服务器系统的安装及相关配置. 介绍的是以优盘的方式安装. 写这篇博文的目的一来是为了供有需要的网友参考, 二来自己也在此做个记载. ...

  3. vSphere Client 搭建Windows server 2008 r2 服务器指南

    下载准备 下载并安装vSphere Client 链接:https://pan.baidu.com/s/1v0IrGrMjpA2FGeqagaJN-g 密码:zzd1 下载Windows server ...

  4. Windows Server 2008 R2服务器系统安全设置参考指南

    Server 2008 R2服务器系统安全设置参考指南  重点比较重要的几部 1.更改默认administrator用户名,复杂密码 2.开启防火墙 3.安装杀毒软件 1)新做系统一定要先打上补丁(升 ...

  5. Windows Server 2008 R2服务器遗忘管理员密码解决方案

     A goal is a dream with a deadline. Much effort, much prosperity.  在日常的工作中,对于一个网络管理员来讲最悲哀的事情莫过于在没有备用 ...

  6. windows server 2008 R2服务器无法通过ShellClass获取mp3音乐时长

    我们先看一段代码,获取mp3播放时长: #region GetMediaDetailInfo 获取媒体文件属性信息 /// <summary> /// 获取媒体文件属性信息 /// < ...

  7. Windows Server 2008 R2 服务器系统安装图文教程

    https://www.jb51.net/os/535658.html http://www.machenike.com/article.php?id=207

  8. [教程] Windows Server 2008 R2架设SMTP服务器发送邮件教程

    Windows Server 2008 R2 架设SMTP服务器实现邮件发送 目的:架设SMTP服务器实现邮件发送. 一.域名设置 添加“邮件交换记录(MX)”: Newjs.cn           ...

  9. Windows server 2008 R2远程桌面终端连接数的破解

    Windows server 2008 R2远程桌面终端连接数的破解 日常工作中,经常需要远程连接到服务器上,然而在公司里,老总.同事都需要连接到服务器上,而默认的服务器系统同时连接的最大连接数只有2 ...

随机推荐

  1. CF356E - Xenia and String Problem

    也许更好的阅读体验 \(\mathcal{Description}\) 定义一种字符串\(gray\)串满足: 长度为奇数 正中间的字母只出现一次 左右两端相同,左右两端也是gray串 一个\(gra ...

  2. 2015.11.27---Java

    public class star{ public static void main(String[] args) { System.out.print("ha"); } }

  3. 正则与sed,grep,awk三剑客

    系统登录顺序: /etc/profile /etc/profile.d/a.sh (a.sh自己建的) /root/.bash_profile /root/.bashrc /etc/bashrc /b ...

  4. Liunx环境下配置matplotlib库使用中文绘图

    最近在使用matplotlib库的过程中需要用到中文绘图,在网上找了好多种方法,最终用一种方法解决了,在此记录. 首先Linux是有自己的中文字体的,叫做"Droid Sans Fallba ...

  5. 【Android】Fresco 初次使用遇到的坑

    初次使用开源框架 Fresco,结果遇到了坑,被虐了半下午--暂且记下. 下面的错误 android.view.InflateException: Binary XML file line #** 报 ...

  6. 【iOS】arc4random() 产生随机数

    通过 arc4random() 获取 0 到 x-1 之间的整数的代码如下: int value = arc4random() % x; 获取 1 到 x 之间的整数的代码如下: ; PS: 这里用到 ...

  7. ASP.NET Core Web Api之JWT刷新Token(三)

    前言 如题,本节我们进入JWT最后一节内容,JWT本质上就是从身份认证服务器获取访问令牌,继而对于用户后续可访问受保护资源,但是关键问题是:访问令牌的生命周期到底设置成多久呢?见过一些使用JWT的童鞋 ...

  8. poj 2524 Ubiquitous Religions(简单并查集)

    对与知道并查集的人来说这题太水了,裸的并查集,如果你要给别人讲述并查集可以使用这个题当做例题,代码中我使用了路径压缩,还是有一定优化作用的. #include <stdio.h> #inc ...

  9. redis过期策略与内存淘汰机制分析

    过期策略: 我们在set key时,可以给一个expire time,就是过期时间 这段过期时间以后,redis对key删除使用:定期删除+惰性删除 定期删除指redis默认在100ms内随机抽取一些 ...

  10. 开发一个Spring Boot Starter!

    在上一篇文章中,我们已经了解了一个starter实现自动配置的基本流程,在这一小结我们将复现上一过程,实现一个自定义的starter. 先来分析starter的需求: 在项目中添加自定义的starte ...