`
wsql
  • 浏览: 11714717 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

[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) 计数器值相对于计算机的物理内存量而言一直很高,则可能表示需要更多内存。
分享到:
评论

相关推荐

    sqlserver优化笔记

    sqlserver优化笔记,自己无聊的时候整理的一些优化笔记

    SQL Server SQL优化

    SQL Server SQL优化

    酒店管理系统,连接SQLServer 数据库 C++/Qt

    酒店管理系统,连接SQLServer 数据库 C++/Qt酒店管理系统,连接SQLServer 数据库 C++/Qt酒店管理系统,连接SQLServer 数据库 C++/Qt酒店管理系统,连接SQLServer 数据库 C++/Qt酒店管理系统,连接SQLServer 数据库 ...

    ASP+SQL SERVER 网上购物系统,毕业设计

    ASP+SQL SERVER 网上购物系统,毕业设计,ASP+SQL SERVER 网上购物系统,毕业设计,ASP+SQL SERVER 网上购物系统,毕业设计ASP+SQL SERVER 网上购物系统,毕业设计,ASP+SQL SERVER 网上购物系统,毕业设计,ASP+SQL...

    SQL Server 2005性能监视器计数器的安装问题

    此文档中详细的记载了,SQL Server 2005性能监视器计数器的安装问题,希望可以帮到有需要的朋友们!

    SQLServer性能优化与管理的艺术

    资源名称:SQL Server性能优化与管理的艺术内容简介:本书共15章,分为三部分,第一部分(第1-2章)为概述部分,阐述SQLServer方面的“性能”及相关概念。并给出常规的性能及性能相关的问题侦测的“方法论”,读者...

    SQL Server 性能监视与优化.pdf

    视数据库的目的是评估服务器的性能。有效监视包括定期拍摄当前性能的快照来隔离导致问题的...Microsoft SQL Server 和 Microsoft Windows 操作系统提供实用工具,使您可以查看数据库的当前状态并跟踪性能的状态变化。

    图书管理系统课程设计报告基于JAVA和SQLServer.docx

    图书管理系统课程设计报告基于JAVA和SQLServer.docx图书管理系统课程设计报告基于JAVA和SQLServer.docx图书管理系统课程设计报告基于JAVA和SQLServer.docx图书管理系统课程设计报告基于JAVA和SQLServer.docx图书管理...

    SqlServer优化培训2.pptx

    SqlServer优化培训2.pptx SqlServer优化培训2.pptx SqlServer优化培训2.pptx

    SQLServer数据库优化之50种方法

    优化SQLServer数据库的50种方法

    Sql Server——Sql性能优化

    Sql Server——Sql性能优化Sql Server——Sql性能优化Sql Server——Sql性能优化Sql Server——Sql性能优化Sql Server——Sql性能优化Sql Server——Sql性能优化Sql Server——Sql性能优化Sql Server——Sql性能优化

    课程设计Python+SQLServer实现疫情医疗信息管理系统源码.zip

    课程设计Python+SQLServer实现疫情医疗信息管理系统源码课程设计Python+SQLServer实现疫情医疗信息管理系统源码课程设计Python+SQLServer实现疫情医疗信息管理系统源码课程设计Python+SQLServer实现疫情医疗信息管理...

    sql server 优化总结

    sql server 优化总结,希望对大家有帮助

    c#+sqlserver酒店管理系统 源码

    c#+sqlserver酒店管理系统 源码

    C# SQL server教务管理系统

    使用C# winform 开发的教务管理系统,SQL server数据库

    sqlserver高级:系统监视与性能调整

    资源名称:sqlserver高级:系统监视与性能调整 资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    SQL Server 2008查询性能优化 中文版pdf

    《SQL Server 2008查询...个人感觉不错,对Sqlserver优化很有帮助,主要都是我们经常犯的错,值得借鉴:如:低性能的查询、索引、死锁等等。 一个pdf文件包括全部内容,清晰完整,是数据库管理员不可多得的必备资料!!

    sql server 语句优化

    sql server 的优化 有助于查询的速度

    SQLServer性能优化篇

    资源名称:SQLServer性能优化篇内容简介: 本文档主要讲述的是SQLServer性能优化;在良好的数据库设计基础上,能有效地使用索引是SQL Server取得高性能的基础,SQL Server采用基于代价的优化模型,它对每一个提交的...

    C# sql server 2005 教务管理系统

    C# sql server 2005 教务管理系统 C# sql server 2005 教务管理系统 C# sql server 2005 教务管理系统 C# sql server 2005 教务管理系统 C# sql server 2005 教务管理系统 C# sql server 2005 教务管理系统 C# sql ...

Global site tag (gtag.js) - Google Analytics