软件RAID0的固态硬盘是帮助还是阻碍有用的CPU工作吞吐量的最大化?

我的问题是在标题…这里是一些背景:

[操作系统是Linux。]

[ 更新:这个RAID0的内容是冗余的(从SCM同步)。 我不担心数据丢失的风险增加。]

[ 更新2:实际上,我可能在这里分裂头发。 但是,除了试图解决一个实际问题,我想要改进/确认我对理论的理解。

我有一个自动构build服务器,我用它来编译一个非常大的项目的源代码,我正在寻找最小化我的构build时间。 我认为当机器在整个构build期间(即所有核心以100%加载,整个时间)保持CPU限制时,将会发生最好的构build时间。这当然是一个理想化的目标,只能是渐近地走近。

我可以从构build的行为(主要是观看mpstat的输出)中看出我的目标的最大敌人是%iowait。 有时候我看到一个不可忽略的空闲百分比,而且我认为内核调度程序的一个适度的失败,和/或Make的并行化构build能力的小的低效率。 但这通常不足以让我担心。 另一方面,%iowait相当频繁地被严重超大…我的CPU负载急剧下降。 我相信这通常发生在某些线程尝试将大型库连接(写入)(软件控制的[*])RAID0时,而其他线程正在尝试读取源代码。

(请暂时忽略这样一个事实,即我可以将输出写入不同于源代码的音量和控制器,这是计划的。

我正在考虑切换到SSD。 但在这种情况下,我认为最好放弃驱动器的软件RAID [*]。 我的直觉是:SSD的访问时间非常快,传输时间如此之快,一个简单的4个固态硬盘LVM将压缩我的%iowaits几乎没有,我的核心将不断挂钩,做最大有用的工作量。

…在这种情况下,4个RAID磁盘arrays的软件控制将不必要地增加我的%sys,而对于%用户则更less。 我的核心仍然是固定的,但是没有什么“有用的”工作完成了。

对于这个特定的目标,我对软件RAID0的固态硬盘的直觉是否正确?

奖励问题:主板上有一个RAID控制器,但是我的理解是这只是“假RAID”,在BIOS选项ROM中提供音量pipe理function,否则只是软件RAID。 所以我不使用它。 但是真的硬件RAID控制器在这里会有帮助吗? 很明显,我可以很容易地在这台机器上固定我的内核。 我无法承受。 我相信固态硬盘将主要解决耐力问题,我发现自己想知道,即使是一个真正的硬件RAID控制器可以改善。

在现代硬件上的Linux下的软件RAID是好的…甚至固态硬盘。 它不会对你的CPU产生巨大的需求。 真。

对于Fusion-io固态硬盘来说 ,推荐的常见部署scheme是使用软件RAID。

我根本不用担心这个。

另请参阅: 我是否需要RAID Fusion-io卡?

尽pipe我已经接受了@ ewwhite的回答,但我想回过头来报告一下我在networking上其他地方发现的一个稍微有点矛盾的答案,即基于经验数据:

我们的testing结果显示,在RAID 0中使用(2)SSD时,读取量增加了16%,写入性能下降了2%。 读取的性能提高足够大,以保证在大多数情况下使用RAID 0,但如果您运行的应用程序执行的写入多于读取,则可能会更多地使用数据磁盘,而不是单独使用数据磁盘RAID 0选项。

http://www.rackspace.com/knowledge_center/article/configuring-a-software-raid-on-a-linux-general-purpose-cloud-server

(我的RAID阅读不止是写作,所以@ ewwhite的答案仍然适合我的需要。)