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 应用还是关系数据仓库应用?

若要了解 SQL Server IO 的核心特征,请参阅SQL Server 2000 I/O 基本知识


二.更多/更快的心轴有助于改善性能

  • 确保拥有足够多的心轴来支持 IO 要求,且滞后时间可以接受。
  • 使用文件组来满足备份/还原和部分数据库可用性等管理要求。
  • 使用数据文件跨特定 IO 配置(物理磁盘和 LUN 等)将数据库“条带化”。


三.不要“过度”优化存储设计;通常,设计越简单,性能越好,灵活性也更高。

  • 除非您对自己的应用非常了解,否则不要通过将对象有选择性地放在不同的心轴上来过度优化 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 数据放在同一个物理心轴上)。

七.考虑TEMPDB数据库的配置

  • 安装 SQL Server 之后,务必先确定 TEMPDB 的大小,并将其移到足够大的存储区。
  • 如果将 TEMPDB 放在 RAID 1+0,性能可能会有所提升(取决于 TEMPDB 的使用)。
  • 对于 TEMPDB 数据库,为每个 CPU 创建 1 个数据文件,如下文第 8 项中所述。

八.按照CPU的个数创建相应数量的数据文件有利于提高分配密集型工作负荷的可伸缩性。

  • 建议为主机服务器上的每个 CPU 创建 .25 到 1 个数据文件(每个文件组)。
  • TEMPDB 更应如此,此时,建议为每个 CPU 创建 1 个数据文件。
  • 双核按 2 个 CPU 算;逻辑处理器(超线程)不算。

九.请勿忽视SQL Server的一些基本知识

  • 数据文件的大小应该一致 – SQL Server 使用按比例的填充算法,该算法倾向于将数据分配到在空闲空间多的文件中。
  • 预先确定数据和日志文件的大小。
  • 不要依赖 AUTOGROW,请手动管理这些文件的增长。为安全起见,可以保留 AUTOGROW 为 ON,但应主动管理数据文件的增长。

十.不要忽视存储配置的基础

  • 使用存储供应商推荐的最新 HBA 驱动程序
  • 使用从 HBA 生产商网站下载的存储供应商特定的驱动程序
  • 根据您的 IO 量优化 HBA 驱动程序的设置。通常,驱动程序特定设置应由存储供应商提供。但我们发现默认的队列深度值一般不够深,无法支持 SQL Server IO 量。
  • 确保存储阵列固件满足最新建议要求。
  • 使用多路径软件在 HBA 和 LUN 之间达到平衡,并确保运行正常
  • 简化配置并提供可用性优势
  • Microsoft Multipath I/O (MPIO):供应商借助 Microsoft 提供的驱动程序开发工具包生成设备特定模块 (DSM)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值