首先以管理员身份登录计算机,从微软网站下载一个叫 Microsoft Windows Dynamic Cache Service 的工具(这个是微软Microsoft的工具不是广告),如图在百度中搜索即可找到,进入微软网站点击网页中的红色Download按钮,稍等会自动弹出下载保存对话框
解决WIN SERVER 2008 R2内存无限增长问题-LMLPHP
解决WIN SERVER 2008 R2内存无限增长问题-LMLPHP
现在下载Microsoft Windows Dynamic Cache Service的默认文件名是DynCache.zip,解压这个文件到 DynCache 文件夹,得到如图这些文件,ReadMe.docx可查看详细使用方法(全英文)
解决WIN SERVER 2008 R2内存无限增长问题-LMLPHP
打开Retail文件夹,得到如图的文件夹,这里的文件夹是根据自己的操作系统和CPU需要选择不同版本,这里简单解释一下:

1) I386,即我们最为常见的X86架构的计算机和操作系统(32位),这里我们右击——计算机——选择“属性”,就可以看到系统类型是32位还是64位,如果是32位则使用I386文件夹下面的文件。
2) AMD64,就是我们最常用的64位架构的计算机和操作系统,家用的64位计算机基本都是这种架构,而且我们最常用的阿里云服务器E系列至强CPU也是AMD64
3)  IA64 是intel面向高端的64位 CPU ,这种CPU 是不能兼容原先的 X86 下的程序,这种架构日常并不多见,所以这里就不详细说,I-tanium(安腾)系列CPU则是采用这种架构。

这里用的是AMD64文件夹(下面以这个为例)
1) 打开AMD64文件夹,找到DynCache.exe,复制这个文件。
解决WIN SERVER 2008 R2内存无限增长问题-LMLPHP
2) 打开“计算机”,在地址址中输入 %SystemRoot%\System32
解决WIN SERVER 2008 R2内存无限增长问题-LMLPHP
3)粘贴刚才的DynCache.exe到这里。解决WIN SERVER 2008 R2内存无限增长问题-LMLPHP

然后我们以管理员身份运行“命令提示符”,复制下面粗斜体的命令到“命令提示符”中,右击粘贴(手动输入注意空格和引号),然后按下回车键。
sc create DynCache binpath= %SystemRoot%\System32\DynCache.exe start= auto type= own DisplayName= "Dynamic Cache Service"  解决WIN SERVER 2008 R2内存无限增长问题-LMLPHP

接着我们回到DynCache文件夹,这里找到一个名为DynCache.reg的注册表文件,双击导入。
解决WIN SERVER 2008 R2内存无限增长问题-LMLPHP

1) 最后我们打开“注册表”编辑器(开始——运行——输入——regedit——确定),依次展开 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters解决WIN SERVER 2008 R2内存无限增长问题-LMLPHP
2) 在右侧找到 MaxSystemCacheMBytes,双击它,这里我们选择“十进制”,在数值里输入要限制最大的缓存数(单位是MB),例如笔者输入800就是限制缓存最大为800MB,输入0为不限制。解决WIN SERVER 2008 R2内存无限增长问题-LMLPHP
3) 如果想卸载本工具,在“命令提示符”中依次输入sc stop DynCache —— 回车 —— sc delete DynCache —— 回车
4) 最后重启计算机即可。

以上方法经过一个月的测试,内存没有再疯狂的增长,也不在需要再定期启动服务器了。但是此方法仅限于未安装MS SQL 2005-2008的系统,如果你是WIN SERVER 2008R2+SQL 2005/2008,那除了排除WINDOWS系统的问题外,还需要排除SQL的问题,这个就比较麻烦了,毕竟SQL 2005/2008的内存回收是公认的老毛病,如果应用的语句写的再不好,那就只有频繁的重启了。
09-21 16:15