SQL Server 2008 I/O性能监控
收藏
原文首发于it168,链接见http://tech.it168.com/a2011/0221/1158/000001158998.shtml
I/O性能诊断
SQL Server性能非常依赖于I/O子系统。除非你的数据库适合物理内存
,SQL
Server经常地会有数据库页面进出缓存池。这样就发生了实质的I/O流量。同样,在事务被明确的提交前,日志记录需要写入磁盘。SQL
Server为各种目的可以使用tempdb,例如存储中间结果,排序,保持行的版本或其他。所以好的I/O子系统对于SQL
Server性能非常重要。
I/O的性能取决于以下一些方面:
磁盘类型包括IDE、SATA、SCSI、SAS、Fibre Channel drive等类型,其中IDE、SATA一般用在个人电脑上。
同时为了在数据安全、数据性能和数据容量之间做平衡,又发展出了RAID,RAID是一种把多块独立的磁盘按不同的方式组合起来形成一个硬盘
组,从而提供比单个硬盘
更高的存储性能和提高数据备份技术。RAID主要包括RAID0~RAID7等几个规范,常用的RAID类型为RAID0、RAID1、RAID5,RAID10。
此外根据连接方式不同还可以分为:Direct Attached Storage(DAS),Storage Area
Networks(SAN),Fibre Channel Storage Area Networks,iSCSI Storage Area
Networks。
吞吐量和IOPS指标
吞吐量主要取决于阵列的架构,光纤通道的大小以及硬盘的个
数。阵列的架构与每个阵列不同,但也都存在内部带宽,不过在一般情况下,内部带宽都设计的很充足,不是瓶颈所在。其次是光纤通道对数据流量的影响,为了达
到1GB/s的数据流量要求,我们必须使用1GB*8=8GB的光纤卡,也可以用4块2GB的光纤卡。其实是硬盘的个数,可以参考以下指标计算方式,假设
为了满足1GB的数据流量要求,所必须的磁盘个数。
IOPS(Input/Output Operations Per Second),即每秒进行读写(I/O)操作的次数,多用于数据库等场合,衡量随机访问的性能。
决定IOPS的主要取决于阵列的算法、cache命中率以及磁盘个数。Cache命中率取决于数据的分布、Cache Size的大小、数据的访问规则,以及Cache的算法。
磁盘的限制,每个磁盘能处理的IOPS是有限制的,通常情况下每个磁盘的最大IOPS是确定的,比如IDE和SATA硬盘的IOPS大致在100以内
(我们可以使用HD
Tune工具进行IOPS测试),而且IOPS的测试结果与测试方式(例如随机读写和顺序读写、读和写的比例、传输数据库尺寸的大小、磁盘的数量)有很大
关系,尽管如此磁盘的IOPS指标还是对我们评估磁盘的压力和是否能够满足系统的性能需求有着一定的指导意义。
假设现在的业务需求是10000 IOPS,120块SCSI磁盘,那么在不同的Cache命中率、不同的读写比例情况下,不同的RAID级别对每块磁盘的IOPS需求是多少呢?
Raid 0 –每个磁盘的I/O计算= (读+写) /磁盘个数
Raid 1 --每个磁盘的I/O计算= [读+(2*写)]/2
Raid 5 --每个磁盘的I/O计算= [读+(4*写)]/磁盘个数
Raid 10 --每个磁盘的I/O计算= [读+(2*写)]/磁盘个数
此外当吞吐率超过85%时,会出现I/O瓶颈,因此单个磁盘IOPS计算规则为
((10000*(1-Cache命中率)*读比例)+10000*写比例*RAID系数)/磁盘数/0.85
即每块磁盘的IOPS大约在200左右即可满足RAID0、RAID5、RAID10的要求。
此外,关于SQL Server的部署一般规划和建议如下:
操作系统
和SQL Server单独构建在RAID1的磁盘镜像上;出于高速和安全的原则,日志文件需要单独安装在RAID1/RAID10上;tempdb文件最好放在RAID0上,而数据文件出于安全、性能、容量、成本的综合考虑一般则使用RAID5。
在微软的technet上有一篇关于存储的最佳实践top 10(Storage Top 10 Best Practices)是这么要求的:
1. 了解SQL Server的IO特性和应用系统的IO需求规格。
2. 使用更多/更快的磁盘驱动以获取良好的性能
3. 不要过度优化存储,简单的设计通常能够提供良好的性能和灵活性。
4. 部署前验证配置。可以用SQLIO之类的工具模拟测试。
5. 始终把日志文件放在RAID10/RAID1上。
6. 把日志文件和数据文件从物理磁盘上隔离。
7. 认真考虑TempDB的数据配置。
8. 在数据文件的数量和CPU
的容量之间平衡。
9. 不要忽视SQL Server的基础。
10.不要忽视存储的配置
对于SQL Server占用I/O资源的监控主要集中在磁盘响应时间、队列长度、磁盘读写和传输速度上。下面提供了几种对象、计数器和相应的阈值及描述。
Sys.dm_io_virtual_file_stats能够返回数据和日志文件的 I/O 统计信息,这也为我们从整体上了解各磁盘和数据库的吞吐量和等待时间有了一个直观的认识。
sys.dm_io_pending_io_requests则对应SQL Server 中每个挂起的 I/O
请求,我们将sys.dm_io_pending_io_requests和Sys.dm_io_virtual_file_stats关联起来,则可以
查看当前是否有等待的IO,然后进行去定位和识别。
分享到:
相关推荐
在SQL Server 2008中,内存管理和IO...综上所述,理解和监控SQL Server 2008的内存和IO性能对于提升数据库性能和稳定性至关重要。通过持续监控和适时的调整,可以有效避免潜在的性能问题,确保数据库系统的高效运行。
SQL Server 性能监控指标说明 SQL Server 的性能监控指标是数据库管理员和开发者对数据库性能进行监控和优化的重要依据。以下是 SQL Server 性能监控指标的说明: 配置硬件 在 SQL Server 中,配置硬件是性能监控...
以下是一些重要的I/O性能监控指标: * 网络IO:网络IO是SQL Server与外部世界进行数据交换的过程,了解网络IO的使用情况可以帮助我们了解SQL Server的网络性能。 * 磁盘IO:磁盘IO是SQL Server与存储设备进行数据...
SQL Server 2005/2008 Express Profiler 是微软SQL Server数据库管理系统中一个强大的性能监视工具,尤其适用于SQL Server 2008 Express版本。它允许开发者和DBA(数据库管理员)深入地洞察数据库系统的运行情况,...
总的来说,SQL Server性能调优涉及对I/O开销的深入理解和分析,通过对内存I/O和物理I/O的监控,我们可以识别性能瓶颈并采取相应的优化措施。这不仅包括优化SQL语句本身,也包括调整数据库配置、改进索引策略和管理...
#### 一、SQL Server监控指标 **1. 访问方法(Access Methods)对象** - **全表扫描/秒 (FullScans/sec)** - **指标描述**: 表示每秒钟进行的全表扫描次数。全表扫描指的是对整个表或整个索引进行的扫描操作。 -...
以下均是针对Window32位系统环境下,64位的不在下面描述情况下。为了防止用户程序访问并篡改操作系统的关键部分,Windows使用了2种处理器存取模式:用户模式和内核模式。顾名思义,内核模式是给操作系统核心代码和...
在SQL Server 2008查询性能优化的主题中,我们主要关注如何提高SQL查询的速度,减少资源消耗,以及提升数据库的整体效率。对于那些已经具备基本SQL语法知识,并期望提升其代码执行性能的开发者来说,这是一个至关...
4. **性能优化**:64位SQL Server 2008可以利用更多的内存进行缓存,减少磁盘I/O,提升查询速度。此外,通过调整SQL Server的内存分配、IO子系统优化、索引策略等,可以进一步提升系统性能。 5. **安全性**:64位...
《SQL Server 2008 Internals》是微软技术专家David Campbell作序的一本深入解析Microsoft SQL Server 2008内部机制的专业书籍。由Paul S. Randal、Kimberly L. Tripp、Conor Cunningham、Adam Machanic和Ben ...
对于系统管理员来说,SQL Server 6.5提供了强大的管理工具,简化了数据库的维护和监控工作。特别值得一提的是,它还内置了对分布式事务的支持,这是在多处理器环境下的关键功能,确保了跨多个数据库的事务一致性。 ...
在Zabbix中,监控SQL Server的关键性能指标有助于确保数据库的稳定性和高效率。以下是一些主要的监控指标及其详细解释: 1. **CPU利用率**: `% Processor Time` 指标反映了处理器执行非空闲线程的时间百分比。理想...
SQL Server 2008 提供了性能监视工具,如SQL Server Profiler和动态管理视图(DMVs),帮助识别性能瓶颈,并提供优化建议。 8. **开发与集成**: 支持多种开发语言,如.NET、Java、PHP等,通过ODBC、JDBC和OLE DB...
在SQL Server 2008中,查询...总的来说,SQL Server 2008查询性能优化涉及多个方面,包括但不限于索引的设计和管理、查询优化、资源使用监控等。正确地应用这些策略,将有助于构建一个响应迅速、效率高的数据库系统。
这个"SQLServer2008Client绿色纯净版"是一个便携式的安装包,无需复杂安装过程,解压后即可直接运行。 ### 1. SQL Server Management Studio (SSMS) SQL Server Management Studio是SQL Server 2008客户端的核心...
SQL Server 2008是微软公司推出的数据库管理系统,它提供了许多强大的特性和改进,包括数据加密、数据仓库、备份和恢复、高可用性解决方案、性能监控和调整等。以下是本书可能涵盖的一些关键知识点: 1. **安装与...
在SQL Server 2008中,查询性能优化是一项至关重要的任务,因为它直接影响到数据库系统的响应速度和整体效率。"SQL Server 2008查询性能优化源代码"这一资源提供了一种深入学习和实践的方法,帮助我们理解并提升SQL...
Microsoft SQL Server(MSSQL)作为一款广泛使用的数据库管理系统,提供了丰富的工具和方法来监控其性能。本文将深入探讨MSSQL性能监控中的几个关键SQL语句,帮助数据库管理员(DBA)和开发者更好地理解和管理MSSQL...