首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >5个大型数据库的驱动器配置

5个大型数据库的驱动器配置
EN

Server Fault用户
提问于 2010-04-27 23:46:57
回答 2查看 156关注 0票数 3

我有5个数据库,每个300 of,目前在一个由5个驱动器组成的RAID 5阵列中。所有的数据库都是大量使用的,同时,驱动器的速度是一个问题。

如果我摆脱了RAID 5的配置,只将每个数据库放在一个单独的驱动器上,我会看到更好的性能吗?由于其他地方的镜像,RAID 5提供的冗余是不必要的。

那么服务器将能够并行地执行对不同数据库驱动器的读/写吗?至少比它在突袭中的时候更好?

这一切都在Windows 2003 / SQL 2008上进行。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2010-04-28 00:19:57

如果数据库同时使用,那么在不同的纺锤体上使用数据库很可能会运行得更快。如果它们经历了彼此抵消的繁忙周期,那么单个RAID数组的执行速度将更快,因为单个数据库的读取将分散在多个驱动器上(当然,如果是在单个驱动器上,则永远不会这样做)。

RAID5通常是数据库性能瓶颈,因为它具有倒写性能。如果您的数组是一个直接的5驱动器数组,那么写入磁盘的每个块都可能导致三次读取,然后是奇偶校验,然后是两次写入(更新后的块和更新的奇偶校验块),而DB中更新的每个页面将导致至少两个块写入:一个写入事务日志,另一个写入数据文件。如果你运行的是四驱加热备用的话,情况会稍微好一些,但不会太多。这就是为什么在数据库工作中通常使用RAID1+0而不是RAID5 (有时使用RAID1E或类似的,在可用的情况下性能也更好)。

将所有内容写入事务日志和数据文件是一个重要的事实。通过将日志文件(S)和数据文件(S)放在不同的驱动器(等等)上,可以大大加快插入/更新操作的速度。您可能会更好地安排数据库周围的五个驱动器,以便每个有自己的日志和数据在不同的驱动器。您如何安排这将取决于预期的活动,每个数据库-您希望避免两个数据库将在同一时间在同一时间在相同的驱动器,如果可能的话。

另一种选择是有两个单独的RAID1数组-一个用于所有日志文件,一个用于数据文件。我想,如果每个DB (都是data+log)都在它自己的驱动器上运行,那么您会明显地从这个黄褐色中看到更好的性能。或者,如果您真的不关心冗余(例如,如果您的镜像是使用复制/集群安排来维护的,这意味着如果主数据库死了,您将损失很少的事务),那么您可以使用一对RAID0s,而不是使用一些额外的速度。

如果为三个驱动器只花一点钱并不是个问题,而且您的机器可以容纳更多的驱动器,那么您可以有一对RAID10数组(一个用于数据,一个用于日志,总共有8个驱动器),那么就没有RAID5写性能问题,您就有了冗余,在单独的驱动器上拥有日志和数据会提高写入性能,而RAID10通常会带来潜在的read+write提升(具有良好控制器的4驱动器RAID10的性能类似于2驱动器RAID0)。我们的一些生产数据库都是这样安排的,我可以告诉你,与我测试过的其他安排相比,它们是在飞行。如果您有一个支持RAID1E的硬件控制器(不幸的是,它在不同的控制器上有不同的名称),那么您可以对两个3个驱动器RAID1E数组进行相同的操作,只需要6个驱动器。

票数 7
EN

Server Fault用户

发布于 2010-04-27 23:59:04

RAID 5的写性能真的很差。对于大量使用的数据库,使用RAID 10可能会更好。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/136449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档