日期:2014-05-17  浏览次数:20567 次

SQL Server 数据页面缓存持续增长的疑难杂症
请大神们指教为什么我64位的服务器上查出来的“数据页面缓存”竟然会存在awe_allocated_kb,而且会不断的持续增大,如果不重启sql server服务,此值会一直增大,直到把服务器内存几乎占光。
select
type,
SUM(virtual_memory_reserved_kb) as VM_Reserved,
SUM(virtual_memory_committed_kb) as VM_Committed,
SUM(awe_allocated_kb) as AWE_Allocated, SUM(shared_memory_reserved_kb) as SM_Reserved,
SUM(shared_memory_committed_kb) as SM_Committed,
SUM(multi_pages_kb) as Multipage_Allocator,
SUM(single_pages_kb) as SinlgePage_Allocator 
From sys.dm_os_memory_clerks 
where type='MEMORYCLERK_SQLBUFFERPOOL'
group by type

附截图,就是其中红色部分得出的结果会持续不断的增加,按照常理64位系统是不支持AWE的,并且我也确实查了,我的服务器并没有开启AWE选项。求大神指点。

------解决方案--------------------
楼主用的什么版本的sql server?
http://technet.microsoft.com/en-us/library/ms175019(v=sql.105).aspx

对于sql server 2012
awe_allocated_kb:
Specifies the amount of memory in kilobytes (KB) locked in the physical memory and not paged out by the operating system. Is not nullable.

我的理解,这个已经不是指awe了。在2012中
------解决方案--------------------
AWE在32跟64位下有不同的用处,
在32下AWE通过PAE是利用超过4G地址空间的那部分内存。
而在64位上,AWE的作用是锁定分配的内存,使之不paged。
设置一个maximum memory吧,
不过maximum memory设置为多少才算合适呢?
没有一个具体的计算公式,要根据通过一些performance counter来判断了。