临时的IO提升为MSSQL服务器

我工作的公司正在考虑对数据库进行数据升级,从一个应用程序版本升级到另一个版本(Axapta 3到Axe 2009)。 这个过程是非常密集的IO和我们目前的设置将需要几天。 我们目前有一个HP Lefthand SAN,有24个450GB 15k磁盘。 我们在iSCSI上运行SAN(2个1GB),这使我们的存储量达到了100MB / s。

我们正在寻找在升级期间提高IO性能的方法。 将要运行升级的服务器将是HP DL360 G7,它有8个SAS端口和一个HP p410i RAID控制器。

我们只需要大约400GB的空间来存放数据和日志文件。

我们正在考虑可能将8个SSD添加到服务器,并在周末build立一个RAID 10arrays。 我已经读过,在进行大量写操作时,消费类SSD的性能会降低。 因为我们只需要一个周末的解决scheme,如果我们购买消费级固态硬盘,我应该担心这个问题吗? 英特尔X25-M系列磁盘可以吗?或者我们应该selectX25-E。

随着密集的数据更改,瓶颈通常是数据库的日志文件。 如果您在完全恢复模式下运行,您还应该预测日志文件增长,并且自动日志文件(和数据文件)增长是性能杀手。 考虑在迁移期间切换到SIMPLE恢复,这样做会尽量减less日志空间需求。 这也将使您不必运行频繁的事务日志备份,这需要读取日志文件,移动磁盘头并减慢速度。 如果你有一个多步迁移过程(“先运行这个程序,然后运行这个其他程序等等)”,你可以在步骤之间进行差异备份(甚至完全备份)。

我build议您通过将日志文件移出SAN并将其放在镜像的一对SAS驱动器上,从数据文件中隔离日志文件。 原因是日志文件的I / O是同步的,而从数据文件读取的数据通常是高速caching的,大部分写入是asynchronous的。 这意味着日志文件的I / O比数据文件的I / O更具时间要求。 移动日志文件会将一些I / O带宽需求从左手移开,但更重要的是,它将允许日志写入串行发生,驱动器磁头很less或移动。 关于日志写入,移动磁头是一个性能杀手。

此外,一对DAS驱动器上的延迟可能比通过SAN交换机更好。 这也是这些同步日志写入的胜利。 您的数据必须在服务器的RAM和驱动器之间传递的小工具(交换机等)越多,您获得的延迟就越多。 毕竟,SAN中的15K RPM驱动器并不比在DL360中安装的15K RPM驱动器快。

我知道SAN供应商会告诉你,SAN有太多的写入caching,没有关系,并且所有写入日志的内容都将被caching,并在稍后暂停,冗余计算(对于RAID5和类似的RAIDtypes)的速度非常快,但是SAN似乎performance得不如你所希望的那么好。 我经历了十几次这样的事情,实际performance一直令人失望。 希望最好,但最坏的计划。

我说使用一对镜像的SAS驱动器的日志。 如果您在(不太可能)发生驱动器故障的情况下必须恢复和重新运行迁移,则可以使用RAID 0或只使用一个驱动器,如果您绝望的话。 (如果你有一个左手,你可能不是绝望,并有几个72 GB或143 GB的SAS驱动器挂在附近)。我只会在迁移期间暂时运行这种方式。 通常情况下,日志驱动器的数据传输速率很低,可能是10 MB / s或更less,但许多小写操作的延迟可以保持一切。 你肯定会select15K RPM驱动器来完成这项任务,而不是使用较低转速的驱动器,但是平均吞吐量可能更高。

此外,您还需要提前手动扩展该日志文件,或者非常仔细地监视日志文件中的可用空间。 如果日志文件开始接近满,请手动将日志文件扩展出来。 如果您手动执行,则迁移过程将继续。 如果你依靠自动增长,这个过程将会持续增长,看起来自动增长1 GB的文件比手动增长1 GB需要更长的时间。 完成该过程后,可以将日志文件缩小到迁移前的任何内容,并将其移回左侧。

根据供应商如何编写他们的迁移代码,您可能还需要很多tempdb。 在testing服务器上尝试一次就很难知道。 如果是这样,您也可以通过将tempdb数据文件移到它们自己的一组本地驱动器上来获得改进。 为此,我一定要RAID10(不是RAID5)。 如果你想冒一个周末的风险,可以使用RAID0,再次提醒你必须恢复你的数据库,如果有什么事情发生的话,重新从头开始迁移。 迁移后不要依赖RAID0。

此外,请确保在空驱动器上创build分区时alignment分区。 这是一个便宜的性能改进。

不pipe你做什么,不要忘记把所有的数据从左手边复制下来并放回去需要花费大量的时间。 我经常需要在服务器之间和通过1 Gb NICS推送1 TB左右。 这将需要数小时。 用一两个10 GB的文件做一个testing,确定预期的数据速率,然后计算移动大文件需要多长时间。 Robocopy工作得很好,我已经使用了至less16年。

另外0.02美元(如果你已经阅读了这个):我对Lefthands不太了解。 如果这些网卡正确地进行了负载均衡,那么我预计会超过175 MB / s。 1 Gb / s网卡上的TCP以太网可以达到115 MB / s左右,无需任何特殊的魔法。 我预计iSCSI会稍微快一点。 如果只能以100 MB / s或更低的速度进行左手操作,并且这些SQL Server文件是唯一的东西,那么左手单元看起来就像$过度杀伤$。 您可能可以从2或4个消费级7200 RPM SATA磁盘中获得数据速率。 DL360应该能够通过一组直接连接的10K SAS驱动器轻松实现最佳的数据传输率。

您正在通过(毫无意义)组合的iSCSI链接运行您的MSSQL框? 难怪你正在寻找额外的performance – 我真的不明白为什么你会削弱自己这样做。 无论如何,转移到DAS将大大提高您的整体性能,但去非惠普固态硬盘可能完全不能工作,他们的卡是着名的只能使用惠普固件驱动器,我会考虑只是使用普通的'旋转“磁盘,也许他们的146GB 15krpm 2.5磁盘,他们自己的SSD是可怕的昂贵(虽然好)。 如果你确实想要试用非惠普的固态硬盘,那么我build议你先购买一块,然后试一下,如果确认就买更多,而且是的 – 沉重的数据库写入速度确实会变慢,甚至会杀死最好的固态硬盘。