posts - 131,  comments - 37,  views - 52万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

最近遇到Windows Server 2008服务器内存持续飙升,48G内存用了99%,查看任务管理器的进程,也没发现具体哪个进程用的内存比较大?

于是,在网上找了了一个查看内存的工具RamMap,具体的内容,大家可以到网上仔细看看这篇文章:《解决Windows内存问题的两个小工具RamMap和VMMap》

这个软件大家可以到网上去下载。

通过RamMap工具,发现占用内存是MetaFile这个东西占用的,于是同事提示使用这个工具来限制metafile对内存的使用。

《Windows Server 2008 MetaFile设置占用内存限制》

文章具体内容:

 

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

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

下载地址: http://www.microsoft.com/en-us/download/details.aspx?id=9258 

具体设置步骤如下:

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位处理器版本)。

 

posted on   踏歌&而行  阅读(8044)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示