现在手上有一个不大不小的系统,运行了一段时间,因为是24*7不断运行,所以内存逐渐增高,慢慢的会飙到95%以上,然后不得不重启电脑,因为用的是云,怕虚拟机重启down掉起不来,重启操作还只能在凌晨4、5点人为弄,周而复始的搞很累,于是下决心找出来到底是什么吞内存

 

 

以上两张图是系统的配置和内存占有情况,可以计算出来,在任务管理器中实际显示使用的内存不到2G,而我4核8G的服务器已经是相对不错的配置了,到底是什么东东占用了内存呢,为什么没有在任务管理器里面显示出来?

为了达到这个目的,我找到了微软官方的工具 RAMMap

http://technet.microsoft.com/zh-cn/sysinternals/ff700229.aspx

运行一看,AWE这条占了7G多,那AWE又是什么呢,具体是哪个软件导致的呢?继续往下挖

首先是AWE的定义,从这篇可以找到,可以看到AWE和SQL有关

http://blogs.technet.com/b/askperf/archive/2010/08/13/introduction-to-the-new-sysinternals-tool-rammap.aspx

 

于是找到这篇Why does my SQL Server use AWE memory? and why is this not visible in RAMMap?”

http://serverfault.com/questions/558287/why-does-my-sql-server-use-awe-memory-and-why-is-this-not-visible-in-rammap

从标题基本已经可以猜测到了,这事肯定是SQLSERVER干的,继续往下了解

 

http://dba.stackexchange.com/questions/48504/awe-memory-usage-growing-with-sql-server-2012

http://blogs.msdn.com/b/psssql/archive/2009/09/11/fun-with-locked-pages-awe-task-manager-and-the-working-set.aspx

这两篇会告诉你SQLSERVER和AWE的关系

 

http://technet.microsoft.com/zh-cn/library/ms178067(v=sql.105).aspx

这篇会告诉你如何限制SQLSERVER不停的吞噬内存,基本命令如下:

 

sp_configure 'show advanced options', 1;

GO

RECONFIGURE;

GO

sp_configure 'max server memory', 4096; --设置最大可使用内存为4G

GO

RECONFIGURE;

GO

 

http://www.brentozar.com/archive/2011/09/sysadmins-guide-microsoft-sql-server-memory/

这篇会告诉你限制 max server memory已经不合适了应该加内存了

以上,基本解决内存问题,随笔记录

posted on 2018-03-07 12:53  xmj  阅读(174)  评论(0编辑  收藏  举报