也问一个SQL Server 2005内存相关问题
环境:Microsoft SQL Server 2005 - 9.00.4035.00 (X64) Nov 24 2008 16:17:31 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 (Build 7600: )
最近发现,32G的内存,大部分情况下都是占用31.7G左右,原来好像一直在20G左右。
这个啥情况?
与此同时,数据库的性能貌似没啥变化。
SQL Server 2005的默认配置没有动过,主要是不懂。
就这个情况,请指点。
SQL Server 2005的默认配置没有动过,主要是不懂。
就这个情况,请指点。
从你提供的数据来看,一切都是正常。
但不会是默认设置,这个明显配置了sql server 启动帐号的lock page in memory。
这是推荐设置。
[解决办法]
--包括:buffer pool中的database cache使用的内存,multi-page使用的内存,stolen memory(Single-page)使用的内存.
select
type,
sum(virtual_memory_reserved_kb) as [VM Reserved], --从buffer pool中保留的大小
sum(virtual_memory_committed_kb) as [VM Committed], --从buffer pool中提交的大小
--是Buffer Pool里的Stolen Memory的大小.在Buffer Pool中通过Stolen分配的,也就是直接Commit分配的内存量.
sum(single_pages_kb) as [SinlgePage Allocator],
--分配的多页内存量(KB),是使用内存节点的多页分配器分配的内存量。此内存在buffer pool外分配,是SQL Server自己的代码使用的MemToLeave大小。
sum(multi_pages_kb) as [MultiPage Allocator],
--内存Clerk使用地址窗口化扩展插件(AWE)分配的内存量。当启用AWE时,只有缓冲池Clerk(MEMORYCLERK_SQLBUFFERPOOL)使用此机制,不可为空值。
--可以由buffer pool使用的内存量
sum(awe_allocated_kb) as [AWE Allocated],
sum(shared_memory_reserved_kb) as [SM Reserved], --内存Clerk保留的共享内存量,保留给共享内存和文件映射使用.
sum(shared_memory_committed_kb) as [SM Committed] --内存Clerk提交的共享内存量,和上面的字段一起可以追踪Shared Memory的大小.
from sys.dm_os_memory_clerks
group by type
order by type
--库缓存(buffer pool中stolen的单页,Multi-page的多页)
--各种对象各占了多少内存:
select objtype,
sum(size_in_bytes) as sum_size_in_bytes,
count(bucketid) as cache_counts
from sys.dm_exec_cached_plans
group by objtype
计划周六装个SP4,到时候看看效果。
另外,做一个一周自动重启一次的计划任务。
哥啊,没事你重启干嘛?找事情干?
不是有人建议周期性重启吗?
重启后,是不是清理了一些长期不用的Buffer之类的?
昨天重启后,现在内存消耗一般在23G左右,原来一直是在31.多G。