使用 SAN 可以对 SQL Server 执行哪些优化?

使用 SAN 可以对 SQL Server 执行哪些优化?

由于我没有接触过SAN(存储区域网络),所以这个问题有点笼统。

是否可以使用 SAN 执行任何优化或配置更改来提高 SQL Server 性能?

答案1

使用 SAN 进行的调整包括:

  1. 确保您有足够的磁盘来支持您的 IO 要求。
  2. 确保 mdf、ldf 和 tempdb 是分开的。
  3. 确保顺序 IO 数据库(数据仓库)与随机 IO 数据库(OLTP)位于不同的主轴上。
  4. 降低或禁用支持 OLTP 数据库的 LUN 上的读取缓存量,因为它们通常无法使用读取缓存。
  5. 最大化白色缓存的数量以避免强制刷新的情况。

如果您有机会参加 11 月份在西雅图举行的 SQLPASS 峰会,我将为 DBA 做一个关于存储的演讲,主要涉及 SAN 存储。

答案2

请查看 Brent Ozar 关于使用 SQLIO 进行 SAN 调优的教程:

http://sqlserverpedia.com/wiki/SAN_Performance_Tuning_with_SQLIO

我使用这种技术来识别我们管理 OLTP 系统的旧远程 SAN 上的瓶颈(瓶颈是只有一张主机总线适配器卡)。

查看以下最佳实践白皮书:

http://technet.microsoft.com/en-us/library/cc966412.aspx

白皮书中提到 - 如果您没有使用 Windows 2008,请记住在卷上设置正确的偏移量:

http://msdn.microsoft.com/en-us/library/dd758814.aspx

按照 mrdenny 的解释,分离数据库的日志和数据文件以及 tempdb,并使用适当的 RAID 级别。

虽然不是 SAN 特有的,但很有用 - 在创建数据库的事务日志时预先增加它们以避免虚拟日志文件碎片:

http://www.sqlskills.com/BLOGS/KIMBERLY/post/8-Steps-to-better-Transaction-Log-throughput.aspx

答案3

这是一个普遍性的问题,但我认为,使用 SAN 可以进行的最佳优化是 LUNS 和 RAID 配置的原始部署。

例如,如果您有一个 24 托架 SAN,确定每个 LUN 的大小、RAID 配置和使用的磁盘数量。从那里,您可以通过优化位置来均匀分配 SQL 服务器的磁盘 i/o。

专用于读取数据库、大量写入或混合数据库、tempdb 等的 lun...

如果这有助于指明正确的方向,请告诉我,如果您还有其他问题,请随时提问,祝您有美好的一天。

最好的,尼克

相关内容