SQL Server需要监控哪些计数器
常规计数器
收集操作系统服务器的服务器性能信息,包括Processor、磁盘、网络、内存
Processor 处理器
1.1 % Processor Time指处理器用来执行非闲置线程时间的百分比。通过此计数器可以确定服务器当前CPU使用百分比。
1.2 % Privileged Time是在特权模式下进程线程执行代码所花时间的百分比。当调用 Windows 系统服务时,此服务经常在特权模式运行,以便获取对系统专有数据的访问。
PhysicalDisk物理磁盘(某个RAID)
2.1 Avg. Disk Queue Length等待请求的队列长度,若此值过大,说明磁盘存在瓶颈,自然磁盘延迟的值也会过大。
2.2 Avg. Disk sec/Read;Avg. Disk sec/Transfer;Avg. Disk sec/Write这三个计数器表示磁盘每次读写需要多少时间,表示磁盘的延迟情况,以秒为单位,若延迟超过25mm表示磁盘性能较差。
LogicalDisk逻辑磁盘(某个卷)
3.1 % Free Space某个磁盘的空闲百分比;Free Megabytes 磁盘剩余大小MB
3.2 Disk Read Bytes/sec;Disk Transfers/sec;Disk Write Bytes/sec这三个计数器表示每秒磁盘的读写情况,表示磁盘的IO性能(iops)
Memory 内存
4.1 Available Mbytes可以内存大小MB,此内存能立刻分配给一个进程或系统使用。它等于分配给待机(缓存的)、空闲和零分页列表内存的总和。
4.2 Cache Bytes 系统使用的内存
4.3 Commit Limit可以申请的内存总大小(虚拟内存和物理内存);Committed Bytes已经使用的内存大小(虚拟内存和物理内存);均是以Byte(字节)为单位。
4.4 Free System Page Table Entries指系统当前未使用的页表项数目。表示内存是否空闲。
4.5 Page Faults/sec 每秒出错页面的数量,也就是未在内存中命中的页面数。因此伴随着Pages/sec计数器是由于出错页面从磁盘读取数据页的速度。此值越大说明内存可能存在一定瓶颈,或者存在大量数据存取。
Network Interface 网络接口
5.1 Current Bandwidth指以位/每秒估计的网络接口的当前带宽。对于那些带宽不变的或无法估计出准确数据的界面,这个值为名义带宽。
5.2 Bytes Received/sec;Bytes Sent/sec;Bytes Total/sec每秒种发送和接收的字节数,表示当前网络的使用情况。
5.3 Output Queue Length输出数据包队列,此值大于2说明传输存在延迟。
5.4 Packets Outbound Discarded 被选为丢弃的数据包数目,丢弃的原因可能是释放缓冲空间。Packets Outbound Errors 由于错误不能传输的数据包数目
5.5 Packets Received Discarded 被选为丢弃的数据包数目,丢弃的原因可能是释放缓冲空间。Packets Received Errors 由于错误不能传输的数据包数目
SQL Server计数器
SQL Server中的Access Methods对象提供监视访问数据库中的逻辑数据的计数器;Buffer Manager计数器监视对磁盘上的数据库也的物理访问。
Access Methods 存取方式
Access Methods监视用于访问数据库中存储的数据的方法有助于确定是否可以通过添加或修改索引、添加或移动分区、添加文件或文件组、对索引进行碎片整理或者重写查询来提高查询性能。 Access Methods 计数器也可用于监视数据库中数据、索引和可用空间的数量,从而指示每个服务器实例的数据卷和碎片。索引的碎片过多会降低性能。
1.1 Page Splits/sec每秒由于索引页溢出而发生的页拆分数。此数据越大表示某表的修改频率较高,且要确认该索引是否适合建立该字段上。
1.2 Workfiles Created/sec每秒创建的工作文件数
1.3 Worktables Created/sec每秒创建的工作表数
Buffer Manager 缓存管理
监视用于存储数据页的内存;读取和写入数据库页时的物理io等,通过此对象可以判断是否存在物理内存瓶颈可以了解服务器的查询性能等等。
2.1 Buffer cache hit ratio命中高速缓冲区页的百分比。若此值过低说明可能内存存在一定瓶颈
2.2 Database pages缓冲池中数据库内容的页数
2.3 Page life expectancy页指示页面在没有引用的情况下,在此节点的缓冲池中停留的时间(以秒计)。此值若降低说明,服务器频繁查询数据库中数据。
2.4 Checkpoint pages/sec Checkpoint的执行频率,若执行的频率过高。则说明服务器过于频繁的修改数据。
2.5 Lazy writes/sec 若懒写入过于频繁,说明没有空闲的缓冲区供使用,内存可能存在一定瓶颈。“惰性编写器”是一个系统进程,用于成批刷新脏的过期的缓冲区(包含更改的缓冲区,必须将这些更改写回磁盘,才能将缓冲区重用于其他页),并使它们可用于用户进程。
Memory Manager 内存管理
监视总体的服务器内存使用情况,以估计用户活动和资源使用,有助于查明性能瓶颈。
3.1 Memory Grants Pending指定等待工作空间内存授权的进程总数。指等待分配内存的进程数量,若此值过高或内存或磁盘存在一定瓶颈。
3.2 Target Server Memory (KB);Total Server Memory (KB)理想上能使用内存量与内存管理器提交的内存量。若此两值存在差异则说明内存异常。
General Statistics 常规统计
4.1 User Connections;Logins/sec;Logouts/sec 用户并发情况
4.2 Processes blocked当前阻塞数量
4.3 Temp Tables For Destruction等待被清除系统线程破坏的临时表/表变量数。无用的临时表和表变量。
SQL Statistics; Wait Statistics请求与等待统计
5.1 Batch Requests/sec;SQL Compilations/sec;SQL Re-Compilations/sec每秒的请求、编译和重编译的次数,这些对于优化供参考。
5.2 Lock waits等待锁的进程数。
5.3 Log write waits等待写入日志缓存的进程数
5.4 Page IO latch waits与页 I/O 闩锁相关的统计信息。用于判断内存或磁盘的瓶颈情况
5.5 Page latch waits与页闩锁(不包括 I/O 闩锁)相关的统计信息。用于判断内存或磁盘的瓶颈情况
Databases针对数据库级别
6.1 Log Flush Wait Time;Log Flushes/sec日志刷新等待和频率,若数据异常则可能存在磁盘瓶颈
6.2 Transactions/sec 事务数
Locks锁
7.1 Lock Requests/sec;Lock Timeouts/sec锁请求频率;锁超时频率
7.2 Number of Deadlocks/sec 死锁情况。