系统环境:
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. Java编程思想:XML

    /* 本次实验需要在www.xom.nu上下载XOM类库 */ import nu.xom.*; import java.io.BufferedOutputStream; import java.io ...

  2. SpringBoot2.x 整合Spring-Session实现Session共享

    SpringBoot2.x 整合Spring-Session实现Session共享 1.前言 发展至今,已经很少还存在单服务的应用架构,不说都使用分布式架构部署, 至少也是多点高可用服务.在多个服务器 ...

  3. Excel催化剂图表系列之品味IBCS瀑布图观察企业利润构成

    IBCS图表,每个细节都值得反复琢磨参悟,此篇给大家送上详尽的瀑布图方式下的利润数据观察.请不要拿Excel2016版提供的瀑布图与IBCS版的瀑布图作对比,那完全不是一个级别的,可以类比为拿一辆经济 ...

  4. C#3.0新增功能09 LINQ 基础05 使用 LINQ 进行数据转换

    连载目录    [已更新最新开发文章,点击查看详细] 语言集成查询 (LINQ) 不只是检索数据. 它也是用于转换数据的强大工具. 通过使用 LINQ查询,可以使用源序列作为输入,并通过多种方式对其进 ...

  5. 图解Redis之数据结构篇——跳跃表

    前言       跳跃表是一种有序的数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的.这么说,我们可能很难理解,我们可以先回忆一下链表. 一.复习跳跃表 1.1 什么 ...

  6. 【杂谈】Hash表与平衡树

    hash表与平衡树查询数据的时间复杂度是多少? hash表为O(1),平衡树为O(logn) 这个时间复杂度是如何得出的? 时间复杂度是按照最糟糕的情况来的.但即使是最糟糕的情况,hash表也只需要计 ...

  7. cookbook_类与对象

    1修改实例的字符串表示 可以通过定义__str__()和__repr__()方法来实现 class Pair: def __init__(self,x,y): self.x = x self.y = ...

  8. Angular JS 中的内置方法之$watch

    在$apply方法中存在脏检查,首先apply方法会触发evel方法,当evel方法解析成功后,会去触发digest方法,digest方法会触发watch方法. $watch(watchFn,watc ...

  9. 入门webpack,看这篇就够了

    什么是webpack? 官网给出的概念是:本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递 ...

  10. 深入学习 Intellij IDEA 调试技巧

    程序员的日常工作除了写代码之外,很大一部分时间将会在查找 BUG,解决问题.查找 BUG,离不开在 IDE 中调试代码.熟练的掌握调试技巧,可以帮助我们减少查找时间,快速定位问题. 在 IDEA 中调 ...