windows2008内存使用过高问题

  

最近一段时间发现业务的一台机器windos2008的可使用内存持续降低,今天已经降低到2 g。
计算了跑着的进程的内存和,发现与实际不符(不知道那剩余的4 g跑哪去了)
后来使用了RAMMap v1.51进行分析内存,下载地址,请点击此处

  

分析发现

  

 windows2008内存使用过高问题

  

映射文件占用大量内存4 g,根据微软官网给出的解释:
你经历性能问题在应用程序和服务在不同版本的Windows XP操作系统,Windows Vista、Windows Server 2003、Windows Server 2008、Windows Server 2008 R2。另外,你注意到以下症状:
1)可用内存几乎耗尽。
2)系统文件缓存消耗大部分的物理RAM。
3)有一个持续的和高容量的硬盘缓存读请求。

  

如果有连续和高容量缓存读请求的任何过程或从任何驱动程序,系统的工作集大小文件缓存将会增加,以满足这一需求。系统文件缓存使用物理RAM。因此,足够数量的物理RAM不用于其他进程
也就是说文件系统的缓存没有做限制导致,持续增加文件系统的缓存持续占有物理内存。

  

解决方案:
官方提供的解决方案是做内存的限制(不允许占有的内存持续增加)

  

安装Windows动态缓存服务,下载地址点击此处
注册服务
动态缓存注册表设置,这里我设置了10 g(物理内存12 g)

  

[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \服务参数\ DynCache \]
“MaxSystemCacheMBytes"=dword: 00002800
“MinSystemCacheMBytes"=dword: 00000064
“SampleIntervalSecs"=dword: 0000003 c
“CacheUpdateThresholdMBytes"=dword: 00000064
只需设置MaxSystemCacheMBytes,这里设置为10 g

  

在服务中启动动态缓存服务。注意:需要重启应用。

  

关键词说明:
过程私人:分配给单一过程专用的内存
映射文件:用来储放档案内容快取(缓存)的内存空间
共享内存:标注给多个过程共用的内存分页(页面内存管理单位)
页表:用来描述虚拟内存位址的分页表(裡面是一笔一笔的PTE,页表条目)
分页池:允许移至硬盘的核心集区内存(内核池内存)
非页池:不允许移至硬盘的核心集区内存
系统PTE:与I/O空间,核心堆叠,内存描述清单等系统分页相关的PTE
会话私人:登入工作阶段相关的内存
元文件:是系统快取的一部份,包含NTFS元数据(包含分区及其他NTFS元数据档案)。在分区中,每个档案属性记录佔用1 k,而一个档案至少有一个属性记录,再加上其他NTFS元数据档,当档案数众多,这块会很快速成长。
敬畏:启用地址窗口扩展技术所使用的相关内存空间(较常应用在SQL或其他DB)
司机锁:驱动程式锁定的实体内存。多用于I/O的暂时性小量应用,如果有装内存虚拟盘,也会算在这一内核堆栈区。
:核心执行绪推叠,执行绪愈多,用量愈大。

  

每项分类都有以下栏位:

  
 <代码>活跃:正在使用中的实体内存分页(流程工作集或系统工作集)
  待机:留在实体内存但暂不使用的分页,保留供后续能快速重覆利用
  修改:与备份类似,但内容被修改过,重覆使用前要先回写到硬盘机
  修改没有写:与修改类似,但标注为不需回写到硬盘
  过渡:在分类之间转换的分页
  0:内容已清空可供使用的分页,系统刚开机时明显增加,随著使用一段时间逐步转为备用
  免费的:可以使用但残留先前资料的分页,使用前需先转为零
  缺点:标注损坏的内存 

windows2008内存使用过高问题