SQLSERVER吞噬内存解决记录
现在手上有一个不大不小的系统,运行了一段时间,因为是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有关
于是找到这篇“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
这两篇会告诉你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已经不合适了,应该加内存了
以上,基本解决内存问题,随笔记录