SQL Server 十大最佳存储实践.pdf
文本预览下载声明
AgileSharp-SQL Server 十大最佳存储实践
SQL Server 十大最佳存储实践
要想让SQL Server 系统的性能和运行达到最佳,关键在于适当配置IO 子系统。以下是
SQL Server 小组推荐的一些最常用、最好的SQL Server 存储配置方法。
了解SQL Server 的IO 特征以及您的应用的具体IO 要求/特征。
为了成功地为您的SQL Server 应用设计和部署存储,您需要了解您的应用的IO 特征,并
对SQL Server 的IO 模式有个基本了解。性能监视器是捕获现有应用的这些信息的最佳位
置。在此,您需要问自己以下几个问题:
应用程序的读写比率是多少?
典型的IO 速率(每秒IO 、MB/s 和IO 的大小)都是多少?监视以下性能监视器
计数器:
1. Average read bytes/sec 、average write bytes/sec
2. Reads/sec 、writes/sec
3. Disk read bytes/sec 、disk write bytes/sec
4. Average disk sec/read 、average disk sec/write
5. Average disk queue length
有多少IO 本质上是有序的?又有多少IO 本质上是随机的?此应用从根本上来说
是OLTP 应用还是关系数据仓库应用?
更多/更快的心轴有助于改善性能
确保拥有足够多的心轴来支持IO 要求,且滞后时间可以接受。
使用文件组来满足备份/还原和部分数据库可用性等管理要求。
使用数据文件跨特定IO 配置(物理磁盘和LUN 等)将数据库“条带化”。
不要“过度”优化存储设计;通常,设计越简单,性能越好,灵活性也更高。
AgileSharp() 安捷雨希提供性能优化,架构设计咨询,内训,解决方案
AgileSharp-SQL Server 十大最佳存储实践
除非您对自己的应用非常了解,否则不要通过将对象有选择性地放在不同的心轴上
来过度优化IO 。
务必预先考虑增长策略。随着数据的增多,您将如何管理数据文件/LUN/RAID 组
的增长?最好预先设计这一策略,不要等以后到了生产部署中再重新调整数据文
件或LUN 。
在部署之前验证配置
在部署SQL Server 之前,务必对IO 子系统进行基本的吞吐量测试。确保这些测试
可以达到您的IO 要求,且其滞后时间也在可以接受的范围内。SQLIO 就是一个可
用来实现该目的的工具。该工具附带了一个文档,其中介绍了测试IO 子系统的基
本知识。请下载SQLIO 磁盘子系统基准工具。
您要明白,运行SQLIO 测试的目的不是模拟SQL Server 的准确IO 特征,而是测
试IO 子系统对于常用SQL Server IO 类型可达到的最大吞吐量。
也可以使用IOMETER 取代SQLIO 。
始终将日志文件放在RAID 1+0 (或RAID 1 )磁盘上。这么做可以:
更好地保护文件免受硬件故障的破坏,以及
获得更好的写性能。
注意:通常,RAID 1+0 可为写密集型应用提供更大的吞吐量。所获得的性能将因
硬件供应商的RAID 实现方式而异。RAID 1+0 最常见的替代方式是RAID 5 。通常,
RAID 1+0 比任何其他提供数据保护的RAID 级别(包括RAID 5 )所提供的写性能
都要好。
在物理磁盘级将日志与数据隔离
无法实现这一点时(如在整合的SQL 环境中),请考虑I/O 的特征,并将相似的
I/O 特征(即所有日志)分到同一个心轴上。
将异类工作负荷(IO 和滞后时间特征迥异的工作负荷)组合在一起可能会对整体
性能产生不利影响(例如,将Exchange 和SQL 数据放在同一个物理心轴上)。
AgileSharp() 安捷雨希提供性能优化,架构设计咨询,
显示全部