我在连接到 IBM Shark 的刀片服务器上遇到了 SQL Server 数据仓库解决方案的性能问题。磁盘 I/O 性能似乎异常缓慢,页面闩锁等待时间过长。从事基于 SQL Server 的 MIS 项目的其他人报告了类似的症状,但没有明显的解决方案。我尝试过的一些测试是:
在设置为 RAID-10 的磁盘架上构建部分或全部卷。这没有任何明显的效果。
禁用 SQL Server 上的强制写入行为(这可能是一种安慰剂 - 见下文)。
这些测试均未显著影响速度,在具有大致相似的硬件和操作系统规格(Windows 2003 server EE)且配备直接连接 SCSI 阵列的机器上,系统基准测试速度大约快两倍。在 SAN 上,我有三个卷,每个卷都安装了 8 个磁盘(RAID-10 日志、RAID-10 tempdb、RAID-10 数据)。在配备直接连接磁盘的机器上,我有 6 个内部 10k SCSI 磁盘和 14 个外部 10k SCSI 磁盘。
请注意,Shark 具有 32GB 的缓存 RAM,这足以满足测试应用程序的工作集要求。
我调查的一个途径是 SQL Server SAN 存储认证程序,其中 SAN 允许 I/O 设置强制直写位。我可以找到 EMC、HP 和 Hitachi SAN 的文档,这些文档声称符合此要求,但找不到 Shark 的此类文档。
有人在 Shark 上遇到过类似的性能问题吗?如果是,您对此有什么见解?
答案1
如果您按照我的 SAN 性能测量说明进行操作:
http://sqlserverpedia.com/wiki/SAN_Performance_Tuning_with_SQLIO
将文本文件的结果发布到网上的某个地方,并在您的问题中包含指向它的链接。这应该可以帮助我们找出速度限制。
另外,您如何在服务器和 SAN 之间进行连接?您使用了多少个 HBA,使用了哪种多路径软件?如果您只使用 2 个 HBA 或者不使用多路径软件,那么您将很早就达到带宽限制。对于 Shark 之类的设备,您需要使用至少 4 个 HBA 和良好的主动/主动多路径软件才能获得良好的吞吐量。
答案2
我在 Sybase 和 Oracle 上也遇到过这种情况。Shark 硬件的性能不如本地磁盘。
答案3
shark 报告哪些类型的 IO 正在进入磁盘?shark 是否显示任何排队情况?SAN 显示了什么样的响应时间?
SAN 有多少缓存?其他系统是否也使用 SAN?SAN 上的缓存如何布局?
如果您只查看 Windows 返回的数字,那么您就无法了解全部情况,因为 SAN 会屏蔽其中一些设置。