加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SqlServer内存瓶颈分析--SQLServer:Buffer Manager

发布时间:2020-12-12 14:26:11 所属栏目:MsSql教程 来源:网络整理
导读:? SELECT TOP 312 * FROM sys.dm_os_performance_counters where object_name = ' SQLServer:Buffer Manager ' order by counter_name 1.Buffer cache hit ratio? 平均值=90%? ???????????????????????????????????????????????????????????????????????????
?
SELECT TOP 312 * FROM  sys.dm_os_performance_counters
where object_name ='SQLServer:Buffer Manager' order by counter_name


1.Buffer cache hit ratio? 平均值>=90%? ??????????????????????????????????????????????????????????????????????????????????????????????????????

缓冲区是创建数据页面的缓冲页面池,这一般是SQL server内存池中最大的部分。这个计数器应该尽可能高。

低值表示只有少数的请求是在缓冲区,其他请求是在磁盘获取服务

这种情况发生可能是SQL server还在准备状态下,或缓冲区的增长需求超过最大可用内存,因此如果此值比较低,应该考虑为系统增加内存。

2.Checkpoint pages/sec??? 平均值<30?? ?

美好一个检查点操作移到磁盘的页面数量,这些值应该相当低,高值意味着缓冲中更多的页面被标记为脏页面。

脏页面是在缓冲区中被修改的页面。一旦被修改,就标记为脏并在下一个检查点被写回磁盘。

如果这个计数器较高说明系统发生大量的写入操作,可能是I/O问题的征兆。???????????????????????????????????????????????????????????????????????????????????????????????

3.Lazy writes/sec???? 平均值<20????? ?????

记录了缓冲区管理器的Lazy write进程每秒写入的缓冲区数量。这个进程会把时间较长的脏页面从缓冲区中删除,将内存释放

数值过高说明I/O有问题或是内存问题。???????????????????????????????????????????????????????????????????????????????????????????????

4.Page life expectancy???? 平均值>300????? ?

页面平均寿命,表示一个不被引用的页面在缓冲池中停留的时间。数值低意味着页面从缓冲区中被移走

降低了缓冲的效率并指出内存压力的可能。???????????????????????????????????????????????????????????????????????????????????????????????????

SELECT TOP 312 * FROM  sys.dm_os_performance_counters
where object_name ='SQLServer:Memory Manager' order by counter_name

1.Memory Grants Pending???   平均值=0

值高说明内存短缺,需要将进度挂起等待内存空闲

2. Target Server Memory(KB)?    接近物理内存大小

表示SQLServer希望消耗的动态内存总数。

3.Total Server Memory (KB? )    接近于Target Server Memory
当前分配给SQLerver的总内存。 如果低于Target Server Memory

那么可能是SQLserver内存需求很低,服务器最大内存设置的太低



解决方案:

优化应用程序工作负载

为SQLServer分配更多内存

增加系统内存

更新32位处理器为64位

启用3G进程空间

在32位SQLserver中使用4G以上内存

启用3G进程空间:

在Boot.ini文件中增加3GB开关

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)WINNT

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)WINNT=

"Microsoft Windows Server 2008 Advanced Server"

/fastdetect /3GB

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读