Linux

SQLServer巡检内容

2021-12-20  本文已影响0人  这货不是王马勺

一、内存分析--SQLServer:Buffer Manager

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内存需求很低,服务器最大内存设置的太低

二、磁盘瓶颈分析 Physical Disk

均使用性能监视器添加指标查看
方法参考:
https://blog.csdn.net/mingzai624/article/details/51348434

%disk time 磁盘时间百分比 平均值<85%
CurrentDiskQueueLength 当前磁盘队列长度 平均值<2
disk Transfers/sec 每秒磁盘传输数量 平均值<100
Disk Bytes/sec 每秒传输字节数 平均值<每秒10MB(该值需通过磁盘性能测试评估,不同磁盘指标不同)
avg.disk sec/read(write) 每次磁盘读写所需平均时间 平均值<10毫秒

三、cpu processor

%process Time 处理器时间百分比 平均值<80%
%privileged time 特权时间百分比 平均值<10%

windows server 包括用户模式和特权模式两种 %privileged time为20%-25%表明系统正在进行大量的IO操作,一个专用的SQLserver系统%privileged time不能超过10%

sqlserver:SQL Statistics Batch Requests/sec 每秒接收到的sql命令批数 根据机器配置 一般1000为繁忙,超过1000应注意
SQL Compilations/sec sql编译次数 <100
SQL Reompilations/sec sql重编译次数

四 网络

Network interface bytes Total/sec 每秒总传输字节数 平均值<NIC容量的50%
NetworkSegment %net utilization 网络利用率 平均值<80%

参考:
https://www.cnblogs.com/dahaoran/p/9447131.html

上一篇下一篇

猜你喜欢

热点阅读