[SQL Server优化]善用系统监视器,确定系统瓶颈

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 原文: [SQL Server优化]善用系统监视器,确定系统瓶颈 来自: http://hi.baidu.com/solorez/blog/item/f82038fa0e71b78d9e51468c.html 如果您运行的是 Microsoft Windows 服务器操作系统,则可以使用系统监视器图形工具来测量系统当前的性能参数。

原文: [SQL Server优化]善用系统监视器,确定系统瓶颈

来自: http://hi.baidu.com/solorez/blog/item/f82038fa0e71b78d9e51468c.html

如果您运行的是 Microsoft Windows 服务器操作系统,则可以使用系统监视器图形工具来测量系统当前的性能参数。可以查看包括处理器、内存、缓存、线程和进程等数据。每个对象都有一个相关的的计数器集,用于测量设备使用情况、队列长 度、延时情况,另外还有吞吐量及内部拥塞指示器。


监视磁盘活动涉及两个主要方面:

监视磁盘 I/O 及检测过度换页
隔离 SQL Server 产生的磁盘活动
监视磁盘 I/O 及检测过度换页
可以对下面两个计数器进行监视以确定磁盘活动:

PhysicalDisk: % Disk Time
PhysicalDisk: Avg. Disk Queue Length
在系统监视器中,PhysicalDisk: % Disk Time 计数器监视磁盘忙于读/写活动所用时间的百分比。如果 PhysicalDisk: % Disk Time 计数器的值较高(大于 90%),请检查 PhysicalDisk: Current Disk Queue Length 计数器了解等待进行磁盘访问的系统请求数量。等待 I/O 请求的数量应该保持在不超过组成物理磁盘的轴数的 1.5 到 2 倍。大多数磁盘只有一个轴,但独立磁盘冗余阵列 (RAID) 设备通常有多个轴。硬件 RAID 设备在系统监视器中显示为一个物理磁盘。通过软件创建的多个 RAID 设备在系统监视器中显示为多个实例。

可以使用 Current Disk Queue Length 和 % Disk Time 计数器的值检测磁盘子系统中的瓶颈。如果 Current Disk Queue Length 和 % Disk Time 计数器的值一直很高,则考虑下列事项:

使用速度更快的磁盘驱动器。
将某些文件移至其他磁盘或服务器。
如果正在使用一个 RAID 阵列,则在该阵列中添加磁盘。
如果使用 RAID 设备,% Disk Time 计数器会指示大于 100% 的值。如果出现这种情况,则使用 PhysicalDisk: Avg. Current Disk Queue Length 计数器来确定等待进行磁盘访问的平均系统请求数量。

I/O 依赖的应用程序或系统可能会使磁盘持续处于活动状态。

监视 Memory: Page Faults/sec 计数器可以确保磁盘活动不是由分页导致的。在 Windows 中,换页的原因包括:

配置进程占用了过多内存。
文件系统活动。
如果在同一硬盘上有多个逻辑分区,请使用 Logical Disk 计数器而非 Physical Disk 计数器。查看逻辑磁盘计数器有助于确定哪些文件被频繁访问。当发现磁盘有大量读/写活动时,请查看读写专用计数器以确定导致每个逻辑卷负荷增加的磁盘活动类型,例如,Logical Disk: Disk Write Bytes/sec。



隔离 SQL Server 产生的磁盘活动

可以进行监视以确定由 SQL Server 组件生成的 I/O 活动量的两个计数器为:

SQL Server:Buffer Manager:Page reads/sec
SQL Server:Buffer Manager:Page writes/sec
在系统监视器中,这些计数器通过检查以下操作的性能监视由 SQL Server 组件生成的 I/O 活动量。

向磁盘写入页
从磁盘读取页
如 果这些计数器的值达到硬件 I/O 子系统的容量限制,则需要减小这些值,方法是调整应用程序或数据库以减少 I/O 操作(如索引覆盖、索引优化或规范化),增加硬件的 I/O 容量或添加内存。例如,您可以使用数据库引擎优化顾问分析典型的 SQL Server 工作负荷,并提出有关索引、索引视图和分区的建议以提高服务器的性能。有关数据库引擎优化顾问的详细信息,请参阅优化物理数据库设计。


监视CPU的使用率


定 期监视 Microsoft SQL Server 实例以确定 CPU 使用率是否在正常范围内。持续的高 CPU 使用率可能表明需要升级 CPU 或需要增加多个处理器。或者,高 CPU 使用率也可能表明应用程序的调整或设计不良。优化应用程序可以降低 CPU 的使用率。

一个确定 CPU 使用率的有效方法是使用系统监视器中的 Processor:% Processor Time 计数器。该计数器监视 CPU 执行非闲置线程所用的时间。持续 80% 到 90% 的状态可能表明需要升级 CPU 或需要增加更多的处理器。对于多处理器系统,应为每个处理器监视一个该计数器的独立实例。这一值代表了在一个特定处理器上的处理器时间之和。若要确定所有 处理器的平均时间,请使用 System: %Total Processor Time 计数器。

另外还可以监视下列计数器来监视处理器的使用率:

Processor: % Privileged Time
对应于处理器执行 Microsoft Windows 内核命令(例如处理 SQL Server I/O 请求)所用时间的百分比。如果 Physical Disk 计数器的值很高时该计数器的值也一直很高,则考虑安装速度更快或效率更高的磁盘子系统。
注意:
不同的磁盘控制器和驱动程序所用的内核处理时间不同。高效的控制器和驱动程序所用的特权时间较少,可留出更多的处理器时间给用户应用程序,从而提高总体的吞吐量。
Processor: %User Time
对应于处理器执行用户进程(例如 SQL Server)所用时间的百分比。
System: Processor Queue Length
对应于等待处理器时间的线程数。当一个进程的线程需要的处理器循环数超过可获得的循环数时,就产生了处理器瓶颈。如果有很多进程在争用处理器时间,可能需要安装一个速度更快的处理器。如果使用的是多处理器系统,则可以增加一个处理器。
检 查处理器使用率时,需考虑 SQL Server 实例执行的工作类型。如果 SQL Server 正在做大量的运算,例如包含聚合的查询,或受内存限制但不需要磁盘 I/O 的查询,此时所用的处理器时间可能是 100%。如果这导致其他应用程序的性能降低,应尝试改变工作负荷。例如,让计算机只运行 SQL Server 实例。

若使用率为 100% 左右(表示在处理大量的客户端请求),可能表示进程正在排队,等待处理器时间,并因而导致出现瓶颈。可以通过增加速度更快的处理器来解决这一问题。


监视内存使用量


定期监视 SQL Server 的实例以确认内存使用量在正常范围内。

若要监视内存不足的情况,请使用下列对象计数器:

Memory: Available Bytes
Memory: Pages/sec
Available Bytes 计数器指示当前有多少内存(以字节为单位)可供进程使用。Pages/sec 计数器指示由于页错误而从磁盘取回的页数,或由于页错误而写入磁盘以释放工作集空间的页数。

Available Bytes 计数器的值低表示计算机总内存不足或应用程序没有释放内存。Pages/sec 计数器的比率高表示分页过多。监视 Memory: Page Faults/sec 计数器以确保磁盘活动不是由分页导致。

分 页率偏低(以及由此产生的页错误)是正常的,即使计算机有大量的可用内存。Microsoft Windows 虚拟内存管理器 (VMM) 在剪裁 SQL Server 和其他进程的工作集大小时会收走这些进程的页。此 VMM 活动会导致页错误。若要确定分页过多是由 SQL Server 还是由其他进程导致,请监视用于 SQL Server 进程实例的 Process: Page Faults/sec。

有关解决分页过多的详细信息,请参阅 Windows 操作系统文档。

隔离 SQL Server 所用的内存

默 认情况下,SQL Server 将根据可用系统资源动态改变其内存要求。如果 SQL Server 需要更多内存,它会查询操作系统以确定是否有可用的空闲物理内存,然后使用可用内存。如果 SQL Server 当前不需要分配给它的内存,它会将内存释放给操作系统。但是,您可以覆盖此选项通过 min server memory 和 max server memory 服务器配置选项来动态使用内存。有关详细信息,请参阅服务器内存选项。

若要监视 SQL Server 使用的内存量,请检查下列性能计数器:

Process: Working Set
SQL Server: Buffer Manager: Buffer Cache Hit Ratio
SQL Server: Buffer Manager: Total Pages
SQL Server: Memory Manager: Total Server Memory (KB)
Working Set 计数器显示进程所用的内存量。如果此内存量一直小于 min server memory 和 max server memory 服务器选项设置的内存量,则 SQL Server 被配置为使用过多内存。

Buffer Cache Hit Ratio 计数器仅适用于应用程序。但是,90% 或更高的命中率是令人满意的。添加更多内存,直到该值始终大于 90%。大于 90% 的值表示数据缓存满足所有数据请求中 90% 以上的请求。

如果 Total Server Memory (KB) 计数器值相对于计算机的物理内存量而言一直很高,则可能表示需要更多内存。

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
13天前
|
SQL 数据库 开发者
MSSQL性能调优实战技巧:索引优化、SQL语句微调与并发控制策略
在Microsoft SQL Server(MSSQL)的管理与优化中,性能调优是一项复杂但至关重要的任务
|
13天前
|
SQL 监控 数据库
MSSQL性能调优实战策略:索引优化、SQL语句重构与并发控制
在Microsoft SQL Server(MSSQL)的管理和优化过程中,性能调优是确保数据库高效运行、满足业务需求的重要环节
|
13天前
|
SQL 运维 监控
MSSQL性能调优实战:索引优化、SQL查询效率提升与并发控制策略
在Microsoft SQL Server(MSSQL)的日常运维与性能优化中,精准的策略与技巧是实现高效数据库管理的关键
|
13天前
|
SQL 存储 数据库
MSSQL性能调优实战:索引优化、SQL语句精调与高效并发处理
在Microsoft SQL Server(MSSQL)的性能调优征途中,索引优化、SQL语句的精细调整以及高效并发处理是三大核心策略
|
13天前
|
SQL 数据库 开发者
MSSQL性能调优实战:索引策略、SQL优化与并发管理深度剖析
在Microsoft SQL Server(MSSQL)的性能调优过程中,索引策略、SQL查询优化以及并发管理是关键的三大支柱
|
13天前
|
SQL 监控 数据库
MSSQL性能调优实战技巧:索引优化策略、SQL查询重构与并发控制详解
在Microsoft SQL Server(MSSQL)的管理与优化过程中,性能调优是确保数据库高效运行的关键环节
|
13天前
|
SQL 运维 监控
MSSQL性能调优实战:索引深度优化、SQL查询技巧与高效并发控制
在Microsoft SQL Server(MSSQL)的运维环境中,性能调优是确保数据库高效、稳定运行的核心任务
|
13天前
|
SQL 监控 数据库
MSSQL性能调优实战指南:精准索引策略、SQL查询优化与高效并发控制
在Microsoft SQL Server(MSSQL)的性能调优过程中,精准索引策略、SQL查询优化以及高效并发控制是三大核心要素
|
4天前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
23 3
|
8天前
|
SQL 关系型数据库 MySQL
"超级攻略:如何快速排查和优化慢SQL,提升系统速度!"
摘要: 在公司中,SQL查询超1秒被视为慢查询。要排查慢查询,启用MySQL的慢查询日志(`slow_query_log = 1`,`long_query_time = 1`),然后分析`mysql-slow.log`。慢查询可能因缺少索引、不当使用索引、字段过多、多次回表、JOIN操作、深度分页或其他因素导致。通过优化表结构、添加索引、调整SQL和数据库配置来提高性能。定位问题关键,如使用`EXPLAIN`分析执行计划。详细教程和解决方案可在相关文章中找到。