整理性能计数器注释

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:
[前话]收集性能计数器注释,以备使用!
[内容]
1  % Processor Time (Processor _Total)
指处理器用来执行非闲置线程时间的百分比。计算方法是,度量处理器用来执行空闲线程的时间,然后用 100% 减去该值。
如果该参数值持续超过95%,表明瓶颈是CPU。可以考虑增加一个处理器或换一个更快的处理器。2  Processor\% User Time\_Total
   表示耗费CPU的数据库操作,如排序,执行aggregate functions等。如果该值很高,可考虑增加索引,尽量使用简单的表联接,水平分割大表格等方法来降低该值。
3  Memory\Pages/sec
   Hard Paging-Memory:Pages/sec > 0 或 Memory:Page Reads/sec > 5
Memory:Pages/sec > 0 或 Memory:Page Reads/sec > 5 表示 Windows 将通过磁盘解决内存引用(强制分页错误)。这需要消耗磁盘 I/O 和 CPU 资源。Memory:Pages/sec 是一个指示 Windows 正在执行的分页数量和数据库服务器当前的 RAM 配置是否充足的有效指示器。Performance Monitor 中的强制分页信息的子集是 Windows 每秒钟必须读取分页文件以解决内存引用的次数,它用“Memory:Pages Reads/sec”表示。如果“Memory:Pages Reads/sec > 5,那么这对于性能是不利的。
 
    每秒磁盘读写页数
这会导致硬页故障,从而导致SQL Server依赖页文件而不是依赖内存。如果这个计数器的平均值为20,你可能需要添加额外的RAM来停止内存分页。
 
4   Memory\Available Mbytes
     它测量可用于运行进程的物理内存量(单位为兆字节)。如果此值低于总物理 RAM 的 5%,则意味着内存不足,分页活动可能会增加。要解决此问题,应增加更多的内存。
5  Memory: Page Faults / sec
  如果该值偶尔走高,表明当时有线程竞争内存。如果持续很高,则内存可能是瓶颈
6  PhysicalDisk\Avg. Disk Queue Length\_Total
该值应不超过磁盘数的1.5~2倍。要提高性能,可增加磁盘。注意:一个Raid Disk实际有多个磁盘。
7  PhysicalDisk\Avg. Disk sec/Read\_Total
   它测量从磁盘读取数据的平均时间(以秒为单位)。如果此数字大于 25 毫秒 (ms),则意味着从磁盘读取数据时磁盘系统发生了延迟。对于托管 SQL Server(R) 和 Exchange Server 的关键任务服务器,可接受的阈值要低得多,约为 10 ms。
8  PhysicalDisk\Avg. Disk sec/Write\_Total
   它测量将数据写入磁盘所需的平均时间(以秒为单位)。如果此数字大于 25 ms,则意味着写入磁盘时磁盘系统发生了延迟。对于托管 SQL Server 和 Exchange Server 的关键任务服务器,可接受的阈值要低得多,约为 10 ms
9  PhysicalDisk\Disk Reads/sec\_Total
                   
    
取决于制造商检查磁盘的指定传送速度,以验证此速度没有超出规格。通常,Ultra Wide SCSI 磁盘
每秒可以处理 50 到 70 次 I/O 操作。
10 PhysicalDisk\Disk Writes/sec\_Total
                   
    
取决于制造商检查磁盘的指定传送速度,以验证此速度没有超出规格。通常,Ultra Wide SCSI 磁盘
每秒可以处理 50 到 70 次 I/O 操作。
 
 
9b  PhysicalDisk\Disk sec /Reads\_Total
   <8ms
10b PhysicalDisk\Disk sec /Writes \_Total
   < 8ms (non cached) < 1ms (cached)
11 SQLServer:Access Methods\Full Scans/sec
  a每秒不受限制的完全扫描数。这些扫描可以是基表扫描,也可以是全文索引扫描。合理范围:<5
b如果该指标的值比1或2高,应该分析设计的查询以确定是否确实需要全表扫描,以及SQL查询是
否可以被优化
12 SQLServer:Access Methods\page Splits/sec
  每秒由于索引页溢出而发生的页拆分数。
   合理范围:越小越好,可降低填满因子的设定值或重建索引还减少每秒的页分割数量。
13 SQLServer:Access Methods\Worktables Created/sec
   每秒创建的工作表数。例如,工作表可用于存储查询假脱机、LOB 变量、XML 变量和游标的临时结果。
 
14 SQLServer:Buffer Manager\Buffer cache hit ratio
 比率最好为90% 或更高。表示90% 以上的数据请求可以从数据缓冲区中获得所需数据。
SQLServer : Cache Manager: Cache Hit RatioSQL
  该值越高越好。如果持续低于80%,应考虑增加内存。 注意该参数值是从SQL Server启动后,就一直累加记数,所以运行经过一段时间后,该值将不能反映系统当前值。
15 SQLServer:Buffer Manager\Checkpoint pages/sec
  由要求刷新所有脏页的检查点或其他操作每秒刷新到磁盘的页数。
16 SQLServer:Buffer Manager\Lazy writes/sec
  每秒被缓冲区管理器的惰性编写器写入的缓冲区数。惰性编写器是一个系统进程,用于成批刷新脏的老化的缓冲区(包含更改的缓冲区,必须将这些更改写回磁盘,才能将缓冲区重用于其他页),并使它们可用于用户进程。惰性编写器不需要为创建可用缓冲区而频繁执行检查点。
合理范围:0
17 SQLServer:Buffer Manager\Page life expectancy
  页若不被引用将在缓冲池中停留的秒数。
  Page Life Expectancy (PLE) 计数器帮助确定是否内存不足。PLE 计数器显示数据页在缓冲区高速缓存中停留的时间。行业中该计数器的可接受阈值为 300 秒。如果在很长一段时间内显示的值平均小于 300 秒,则表明从内存中刷新数据页的频率过高。如果出现这种情况,将导致 Resource Monitor 负载加重,从而导致处理器的活动增多。应该将 PLE 计数器和 Checkpoints Pages/sec 计数器一起进行评估。在系统中出现检查点时,缓冲区高速缓存中的脏数据页被刷新到磁盘,从而导致 PLE 值下降。Resource Monitor 进程是真正将这些页刷新到磁盘的机制,所以在出现这些检查点期间,您应该还会看到 Lazy Writes/sec 值增加。如果完成检查点后 PLE 值立即增加,您可以忽略这种短暂现象。另一方面,如果发现经常低于 PLE 阈值,则此时非常适合使用多出的内存缓解您的问题,同时将一些资源释放回 CPU。
 
18 SQLServer:Databases\Data File(s) Size (KB)\sqlh2
  数据库中所有数据文件的累计大小 (KB),包括任何自动增长。监视此计数器非常有用,例如可以确定 tempdb 的准确大小。
19 SQLServer:Databases\Log File(s) Size (KB)\sqlh2
   数据库中所有事务日志文件的累计大小 (KB)。
20 SQLServer:Databases\Log File(s) Used Size (KB)\sqlh2
  数据库中所有日志文件的累计已用大小。
21 SQLServer:Latches\Latch Waits/sec
  未能立即授予的闩锁请求数。
  合理范围:越小越好,值过大表明服务器可能存在对资源的竞争问题。
22 SQLServer:Latches\Average Latch Wait Time (ms)
   必须等待授予的闩锁请求的平均等待时间(毫秒)。如果该指标的值很高,则系统可能正经历严
重的资源竞争问题。
23 SQLServer:Locks\Lock Waits/sec\_Total
  每秒要求调用者等待的锁请求数
24 SQLServer:Locks\Average Wait Time (ms)\_Total
   每个导致等待的锁请求的平均等待时间(毫秒)。
25 SQLServer:SQL Statistics\Batch Requests/sec
  每秒收到的 Transact-SQL 命令批数。 这一统计信息受所有约束(如 I/O、用户数、高速缓存大小、请求的复杂程度等)影响。 批处理请求数值高意味着吞吐量很好
26 SQLServer:SQL Statistics\SQL Compilations/sec
   每秒的 SQL 编译数。 表示编译代码路径被进入的次数。 包括 SQL Server 中语句级重新编译导致的编译。 当 SQL Server 用户活动稳定后,该值将达到稳定状态
27 SQLServer:SQL Statistics\SQL Re-Compilations/sec
   每秒语句重新编译的次数。 计算语句重新编译被触发的次数。 一般来说,这个数最好较小。 在更高版本的 SQL Server 中,重新编译发生在语句级别,而不是发生在 Microsoft SQL Server 2000 中的批处理级别。 因此,不能直接比较 SQL Server 和早期版本中该计数器的值。
28 SQLServer:Memory Manager\Memory Grants Pending
   等待工作空间内存授权的进程总数。
29 PhysicalDisk\% Idle Time

它测量磁盘在采样间隔期间的空闲时间百分比。如果此计数器低于 20%,则表示磁盘系统处于满负荷状态。可考虑将当前的磁盘系统更换为速度更快的磁盘系统。



本文转自hahazhu0634 51CTO博客,原文链接:http://blog.51cto.com/5ydycm/172806,如需转载请自行联系原作者

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
5月前
|
数据库 C++
《C++避坑神器·十七》找到程序崩溃Bug的一个实用方法:dump调试
《C++避坑神器·十七》找到程序崩溃Bug的一个实用方法:dump调试
60 0
|
7月前
|
SQL 数据库
使用 SAP ABAP Memory Inspector 对应用程序消耗内存进行检测时常犯的错误试读版
使用 SAP ABAP Memory Inspector 对应用程序消耗内存进行检测时常犯的错误试读版
65 0
|
10月前
|
缓存 自然语言处理 小程序
这个迭代写了个小程序,顺便整理了一份笔记 📒 (4000字)
这个迭代写了个小程序,顺便整理了一份笔记 📒 (4000字)
137 0
|
数据库
【高效编码】查询日志的命令老是记不住?没关系,这篇文章帮你记
您好,我是码农飞哥,一直想飞暂时在跑个那个老哥。
207 0
【高效编码】查询日志的命令老是记不住?没关系,这篇文章帮你记
超过6G的大文件是如何读取的,附源代码。含有网上很少有论述的信息
读取大文件有如下两种方法,一是用fopen打开文件,fgetline循环读取,fclose关闭文件;二是用open打开函数,用lseek获取文件大小,用mmap大文件内存映射,用munmap关闭内存映射,用close关闭文件句柄。方式一教慢,就不再详细描述。主要描述方式二。
CPU结构整理(附Xmind整理)
CPU结构整理(附Xmind整理)
78 0
CPU结构整理(附Xmind整理)
|
缓存 并行计算 Java
Python编程:节省内存的办法(持续更新ing...)
本文将介绍Python编程时节省内存的方法。 其实我一般使用CPU运行代码时不太有内存问题,主要是在用GPU时会遇到OOM问题,需要节省内存。因此本文接下来的内容会涉及CPU、GPU通用的方法,和使用GPU(主要是使用PyTorch框架)时的解决方案。
设置的下载器的bug整理
1,流不小心关闭了,那就把流打开就好了:
103 0
设置的下载器的bug整理
|
Java
本来想用“{{”秀一波,结果却导致了内存溢出!(上)
本来想用“{{”秀一波,结果却导致了内存溢出!
99 0
本来想用“{{”秀一波,结果却导致了内存溢出!(上)
|
Java API
本来想用“{{”秀一波,结果却导致了内存溢出!(下)
本来想用“{{”秀一波,结果却导致了内存溢出!
141 0
本来想用“{{”秀一波,结果却导致了内存溢出!(下)