views:

451

answers:

10

I'm thinking of improving the performance of my development machine, and the next step is the IO subsystem, namely, the hard disks. Assuming consumer grade disks (which removes SCSI and SAS drives) and a reasonable bill (which removes the option of two or more 10k RPM disks), the two options I'm faced are:

  1. getting 1 VelociRaptor or equivalent 10k RPM SATA disk (most likely the 150gb one)
  2. getting 2 standard 7k RPM disks and setting them up as RAID 0.

The 10 RPM disk is the safest but most expensive choice, as it costs about 150€ around here for the given size. Getting the 2 other disks gives a more dangerous scenario, because the likelihood of failure doubles, but it's a less expensive option, specially if I take care and do regular full disk backups.

My main question is then one of performance: which scenario would yield a better performance in development tasks (.NET mostly, some virtual machines running, Visual Studio). Has anyone seen or done comparative benchmarks between these two scenarios? Is there any scenario I'm missing?

EDIT: I'm now leaning towards the Velociraptor. As this is a development machine, the most common scenario would be compiling, and raid 0 would not help much with "mostly" random read/writes.

I intend to do some benchmarks before and after, and I'll update this question if/when I get the data. Thank you all for your answers.

A: 

Striping to multiple drives should be faster, if the controller is even close to decent (as in hardware supported, not some nasty software RAID card).

But this begs the question... have you really determined that disk I/O is your current bottleneck? If it's not then it doesn't matter anyway. ;-)

dwc
A: 

Option 2 would give you the bigger performance boost. If you're worried about drive failure then you should probably think about making regular backups of essential data.

Kevin Tighe
A: 

I had a 150GB Raptor and then had to go back to "normal" disk. Now, the build process and Tomcat startup literary hurt. You notice improvement, but you notice slowdown much more. :)

Now I'm planning to go to VelociRaptor which should have even better performance than Raptor (and should be quieter/cooler as well).

As of two disks, yes I've heard too many horror stories, however the main reason I chose not to go that route is that two disks simply means more noise. VelociRaptor noise levels are great for silent computing.

Domchi
+1  A: 

I think a better question is not which provides better performance, but how MUCH performance benefit will you gain. Along the same lines, cost/performance increase is something to look at.

Looking it a few months ago, I believe I found that a two disk raid 0 had very meager improvements in speed and it's barely faster than a one disk setup of the same RPM.

I believe the 10K would be faster, but do your research and look at numbers.

jbu
+4  A: 

As with any performance optimization exercise, you'll need to gather real data for real scenarios.

  • Make sure you test the things you really do, not just running canned benchmarks. Benchmarks are great for comparing results from different runs, but they don't tell you enough about how things will affect what you really do.

  • Measure speed now and with various changes.

  • If you haven't already, max out your RAM.

  • Drivers will probably have a big impact on your results. Make sure you have the latest drivers when you test speed. Sometimes you can get one driver from Windows Update, one from a device manufacturer, and one from the manufacturer of a chip used on a device. Be sure to try them all. Same with BIOS for all devices.

  • Buy various options, try them out, and return the ones you don't use. I rarely buy electronics from a retail place, but if you have a local business where you get to know the staff and they're not a bunch of losers, they may help you experiment without paying a bunch of shipping & restocking fees.

  • Do backups. Windows Home Server being the easy way. It lets you restore each time you change hardware, so you can quickly do real tests. It lets you recover from a bad RAID driver update. RAID 0 increases exposure to hardware failure, so it protects you from that, too.

Also, be sure to read the SO question "Best Dual HD Set up for Development"

Jay Bazuzi
Thanks for reminding me to measure things. I'll most likely do so, both before and after a change. Hopefully I'll post the results somewhere
Bruno Lopes
+4  A: 

You need to determine what kind of operation is making your hard drive a bottleneck. If the issue is read latency, then the 10k RPM drive will be a bit better, but you should strongly consider one of Intel's SSDs, even though they are expensive. RAID 0 doesn't help with latency, because both drives still have to seek to the same part of the disk. RAID 1 would only help in smarter controllers that can distribute read requests across both disks.

If read or write bandwidth is your problem, then the two 7k RPM drives in RAID 0 will be better as long as your RAID controller is decent.

For software development, the performance bottleneck is usually compiling, which consists of reading and writing a lot of small files. Particularly if you're using something like parallel make, the disk will be getting a lot of random read requests, so latency will be the big issue. An Intel SSD could be several times faster than a 10k RPM drive for this.

+2  A: 

either of these could be best, depending on usage.

other things equal, the 10k disk have around 1.5x bandwidth of a 7k2 one. RAID0 roughly doubles bandwidth, so it's 2x vs 1.5x, RAID0 wins on bandwidth.

OTOH, RAID0 does nothing to the seektime, while a 10k disk has (again) seek times around 1.5x better than the 7k2. 10k wins on seektimes.

so, the real question is: do you need more bandwidth, or lower seektimes? if you're doing heavy multitasking, the seek times are the killer. if it's mostly one app at a time, bandwidth is king.

in most cases, servers are latency-limited and workstations are bandwidth-limited. a few virtual machines don't change that, unless your VMs do heavy file-based IO on the background.

Javier
A: 

If you only care about speed then the verociraptor is a great drive but I'd suggest you consider the very latest 7.2k SATA disks, they're really very fast indeed these days and of course have a lot more capacity. Presumably SSD is out of the budget?

Chopper3
+1  A: 

Seeks and small read/writes are the main behaviours exhibited during compilation.

RAID 0 is for seek behaviour slightly worse than a single disk.

A file will be split equally over the disks. If you wish to seek to that file, each drive has to seek. The heads will be in the same cylinder, but the rotational position will not be identical across the disks - it can't be, not at 7k RPM each with slightly different startups. Imagine you had a million disks - it would means some disks would be in the worst possible rotational point and you will have to wait the longest possible rotation time. Of course, generally, the cylinder to cyliner seek is far slower than the rotational seek, but if you don't have to change cylinder, then RAID 0 will be slower. At all other time, it will make no difference. RAID 0 will improve throughput, but you don't need that for compilation.

Your best bet actually is to buy some extra RAM and compile inside a RAM disk.

Blank Xavier
+1  A: 

I’m late to the party on this one, but my Dad just sent me a link to this after I’d written a post on this exact topic.

In short: measure, but in my tests the RAID stripe won by a decent margin.

Rob Rix