2009-02-12 106 views
0

我正在考虑提高开发机器的性能,下一步是IO子系统,硬盘。 假设消费级硬盘(删除SCSI和SAS驱动器)和一个合理的法案(删除两个或两个以上10K RPM硬盘的选项),我遇到的两个选项是:条纹RAID中1 10k rpm磁盘和2 7k rpm磁盘之间最好的选择,性能方面

  1. 获得1个VelociRaptor的或相当于10K RPM SATA硬盘(很可能是一个150GB)
  2. 得到2个标准7K RPM磁盘,将它们设置为RAID 0

了10转硬盘是最安全的,但最昂贵的选择,因为它的成本在这里给定的尺寸大约150欧元。获得另外两张磁盘会带来更危险的情况,因为失败的可能性加倍,但这是一个较便宜的选择,特别是如果我照顾并定期进行全盘备份。我的主要问题是性能的问题之一:哪种情况会在开发任务中产生更好的性能(主要是.NET,一些运行的虚拟机,Visual Studio)。 有没有人看到或完成这两种情况下的比较基准?有没有我想念的情景?

编辑:我现在倾向于Velociraptor。由于这是一个开发机器,最常见的情况是编译,而raid 0对于“大部分”随机读取/写入没有多大帮助。

我打算在之前和之后做一些基准测试,如果/当我得到数据时我会更新这个问题。

+0

这不是一个编程问题,但它*是*编程相关的:我们都希望我们的编程环境能够响应。 – 2009-02-12 23:36:48

+0

我同意,这绝对是编程相关的,尤其是当磁盘性能可能是在优化计算机进行编程时需要考虑的最重要的因素。 – Domchi 2009-02-12 23:40:36

回答

0

如果控制器甚至接近体面(如在硬件支持的情况下,不是一些令人讨厌的软件RAID卡),则应该更快地分条到多个驱动器。

但是这引出了一个问题......你真的确定磁盘I/O是你目前的瓶颈吗?如果不是,那么无论如何都不重要。 ;-)

0

选项2会给你更大的性能提升。如果您担心驱动器出现故障,那么您应该考虑定期备份基本数据。

0

我有一个150GB的猛禽,然后不得不回到“正常”的磁盘。现在,构建过程和Tomcat创业文学受到伤害。你注意到了改进,但你注意到更多的放缓。 :)

现在我打算去VelociRaptor,它应该比Raptor有更好的性能(并且应该更安静/更酷)。

从两张磁盘开始,是的,我听过很多恐怖故事,但是我选择不走这条路线的主要原因是两个磁盘意味着更多的噪音。 VelociRaptor噪音水平非常适合静音计算。

1

我认为一个更好的问题并不是提供更好的性能,而是会获得多大的性能好处。沿着同样的路线,成本/性能的提高是值得关注的。

看几个月前,我相信我发现两个磁盘raid 0的速度有很小的改进,它比同一个RPM的一个磁盘设置的速度还要快。

我相信10K会更快,但做你的研究,看看数字

4

与任何性能优化练习一样,您需要为真实场景收集真实数据。

  • 确保您测试你真的,不只是运行基准罐头的东西。基准对于比较不同运行的结果非常有用,但它们并没有告诉你足够的事情会如何影响你的实际工作。

  • 现在测量速度和各种变化。

  • 如果你还没有,max你的RAM

  • 驱动程序可能会对您的结果产生重大影响。确保在测试速度时拥有最新的驱动程序。有时,您可以从Windows Update获得一个驱动程序,从设备制造商获得一个驱动程序,并从设备上使用的芯片制造商获取一个驱动程序。一定要全部尝试。与所有设备的BIOS相同。

  • 购买各种选项,试用它们,并返回你不使用的选项。我很少从零售店购买电子产品,但如果你有一个本地商户,你可以在那里了解员工,他们不是一群失败者,他们可以帮助你实验,而无需支付一堆运费&补充费用。

  • 做备份。 Windows Home Server是简单的方法。它可以让您在每次更换硬件时进行恢复,以便快速进行真正的测试。它可以让你从一个坏的RAID驱动更新中恢复。 RAID 0增加了硬件故障的风险,所以它也可以保护您免受此类损害。

此外,请务必阅读SO问题“Best Dual HD Set up for Development

4

你需要确定什么样的操作是使你的硬盘的瓶颈。如果问题是读取延迟,那么10k RPM驱动器会更好一些,但是您应该强烈考虑英特尔的SSD之一,尽管它们很贵。 RAID 0对延迟没有帮助,因为两个驱动器仍然需要寻找磁盘的相同部分。 RAID 1只能帮助智能控制器在两个磁盘之间分配读取请求。

如果读取或写入带宽是您的问题,那么RAID 0中的两个7k RPM驱动器将会更好,只要您的RAID控制器体面。

对于软件开发,性能瓶颈通常为compiling,其中包括读写大量小文件。特别是如果你使用的是类似并行make的东西,磁盘会得到大量的随机读取请求,所以延迟将是大问题。英特尔SSD可能比10k RPM驱动器快几倍。

2

根据使用情况,其中任何一种都可能是最好的。

其他东西相同,10k磁盘约有一个7k2的1.5x带宽。 RAID0大约是带宽的两倍,因此它是2x与1.5x,RAID0在带宽上获胜。

OTOH,RAID0对搜寻时间没有任何影响,而10k磁盘(再次)搜索时间在1左右。比7k2好5倍。 10K在寻找时间赢了。

所以,真正的问题是:你需要更多的带宽还是更低的寻找时间?如果你正在执行繁重的任务,寻找时间是杀手。如果它一次只有一个应用程序,带宽是最重要的。

在大多数情况下,服务器延迟受限且工作站受带宽限制。少数虚拟机不会改变这种情况,除非您的虚拟机在后台执行大量基于文件的IO。

0

如果你只关心速度,那么verociraptor是一个很好的驱动器,但我建议你考虑最新的7.2k SATA磁盘,他们现在确实非常快,当然还有更多的容量。据推测,SSD是否超出预算?

1

搜索和小读/写是编译期间显示的主要行为。

RAID 0对于查找行为稍差于单个磁盘。

文件将在磁盘上平均分配。如果你想寻求那个文件,每个驱动器已经寻求。磁头将在同一个圆柱体中,但磁盘的旋转位置不会相同 - 不可能,不是每个7K RPM都有不同的启动。想象一下你有一百万张磁盘 - 这意味着一些磁盘将处于最坏的可能旋转点,你将不得不等待最长的可能旋转时间。当然,通常情况下,圆柱到柱面搜索的速度远远低于旋转搜索的速度,但如果您不必更换柱面,那么RAID 0将会变慢。在其他任何时候,这都没有什么区别。 RAID 0将提高吞吐量,但您不需要编译。

实际上最好的办法是购买一些额外的RAM并在RAM磁盘内编译。

1

我迟到了这一次派对,但我写了a post on this exact topic之后,我的爸爸给我发了一个链接。

总之:测量,但在我的测试中,RAID条纹赢得了一个不错的余地。