Scott Hanselman

Virtual Machines and External Hard Drive throughput

January 5, '06 Comments [9] Posted in Musings
Sponsored By

In a recent discussion I was involved in about performance of Virtual Machines, a number of interesting things came up.

There's a number of generally recommended tips if you're running a VM, either in VMWare or VirtualPC, the most important one being: run it on a hard drive spindle that is different than your system disk.

Many folks recommend USB 2.0 external drives, while others swear by Firewire (either 400 or 800). One individual in the discussion said that since USB 2.0's theoretical transfer rate is 480Mbs and that most devices can theoretically use only 2/3 of the bus' bandwidth that the maximum throughput was likely 320Mbs. This may or not be true, but the root of his argument was that a 7200 RPM Hard Drive could (very likely in his opinion) saturate USB, so wouldn't Firewire 800 be a better choice?

Richard Campbell posted an excellent follow up with better math that sets, IMHO, the record fairly straight and I'm included parts of it here with permission:

The issue here is specification maximums versus actual performance data.

USB and Firewire are measured in MegaBITS per second, so 480mbps translates to 60MB/sec (presuming you believe there's only eight bits to a byte in this scenario, and that's more complicated than you might think). Also, recall that these are bus-based technologies, designed to be shared, so really that speed is not designed to be filled from a single device.

ATA/133, SATA/150 and SCSI/320 are all in MB/sec, so obviously all these internal protocols are faster than their external brethren.

Meantime, you have the issue of hard drives - the performance of which varies depending on what you're doing with it, and where you're doing it.

Take a look at Maxtor's DiamondMax 10. Top of the line 7,200 rpm drive with a maximum transfer rate 65MB/sec. And that's maximum - grabbing data from the outer rim of the drive where things are fastest. At the inner edge of the drive its down to 35MB/sec. Either way, you're not going to saturate any of the internal interfaces with this drive, and even USB2 can keep up for the most part.

Drop down to 2.5" drives like Hitachi's lovely little Travelstar 7,200 rpm drive and you're looking at transfer rates with a high of 54MB/sec and low of 27MB/sec. You're still not going to bury USB2.

And I would like to point out that these are optimal transfer rate tests here - huge files written across the disk so the drive can grab them as fast as possible. Your real-world mileage will vary: lower.

Spindle speed definitely makes a difference - its very tough to get transfer rates over 40MB/sec with a 5,400 rpm drive, and virtually any 7,200 rpm drive can offer that on the fast side, anyway. When you get to 10,000 rpm drives, you start seeing maximum transfer rates like 70MB/sec. Some 15,000 rpm drives can do as much as 90MB/sec peak! In exchange, of course, you get noise, heat and explosive potential. Not to mention outrageous prices.

USB1 definitely wasn't fast enough for modern drives, but USB2 is, at least for the foreseeable future.

If you skipped Richard's comments and hopped down here, the nutshell is that a 7200 RPM Hard Drive is, given it's maximum throughput, if it's reading the data from the outside or inside edge of the disk, the file size and access pattern, not very likely to saturate USB2. The conclusion is that either USB 2.0 or Firewire are both very reasonable solution for the power user's external HD needs when running Virtual Machines.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb
Thursday, January 05, 2006 2:19:31 AM UTC
To beat this horse a little more, there is the issue of the internal drive cache. standard is 8 megs these days with newer ones at 16 megs. How will this assist with writing data? What about re-reading cached data?
John
Thursday, January 05, 2006 4:53:21 AM UTC
This assumes a constant speed throughput over the USB 2 connection.

http://brennan.offwhite.net/blog/archives/000298.html

I explain there the reason why this can lead you to the wrong assumption.
Thursday, January 05, 2006 2:12:11 PM UTC
Brennan hit the nail on the head. I have one of those dual interface (USB2/Firewire) drive enclosures, and have done tests sometime ago. While USB2 is slightly faster for short bursts(smaller files), Firewire wins for when moving large chunks of data around.

In my case, I was copying a DVD's worth of data (4.7 GB) and Firewire was the clear winner (I don't remember the exact numbers).
Thursday, January 05, 2006 6:31:56 PM UTC
Would defraging files inside the host file make a difference to speed file access inside the VM?


I am not in big favor of VM's because they tend to be slow and resource hogs. I use a second hand computer, install an OS with all the software I need and image the drive to a DVD or external HD. Whenever I want to dispose of the system, I just restore the image.

Abdu
Thursday, January 05, 2006 6:36:15 PM UTC
Scott, Did you find any information about saturating the USB2.0 bus and system responsiveness? I've heard (and experienced) better system performance when transfering large amounts of data to my Firewire devices vs. USB 2.0 devices.

Any thoughts?

John
Thursday, January 05, 2006 9:10:51 PM UTC
I've used HDTach on a combo external unit containing a 3.5" Maxtor 7200 RPM. USB2.0 pulled in around 15MB/s, and Firewire around 27MB/s.
James
Friday, January 06, 2006 1:01:52 AM UTC
Don't forget about the 10,000 rpm HDs made by IBM. After upgrading my aging 64-bit desktop its old 30Gb 10,000 rpm Raptor has been put in a tiny USB enclosure for presentations using VMs. At Atlanta’s 2005 launch I watched Mark Dunn give a great presentation with a VM and external HD + saw other presenters struggle with performance problems while running a VM: after seeing the night-and-day difference it was a no brainer even for a junior (every-code-camp-I-can-drive-to presenter) like me.

Anyone presenting with a 4200 rpm HD in their laptop should be shot! I was planning a 'Microsoft presenters - get your act together' blog post soon :)


On a similar note if anyone has 4200/5400 HDs in their laptop consider spending a few bob to upgrade to 7200:
http://www.dotnetworkaholic.com/No+Brainer+Laptop+Upgrade+7200+Rpm+HD.aspx
Friday, January 06, 2006 11:49:56 PM UTC
After thinking about this and with the doubt surrounding firewire/ USB speeds I am ordering an SATA PCMCIA card for my laptop

e.g. http://www.usb-ware.com/cbsata2-sata-cardbus.htm

The enclosure I have outputs USB 2.0 and SATA. So if my laptop dies/ does not agree with a projector (this happens a lot) then I can still use somone else's laptop to present. Not everyone has firewire which is why I ruled that out from the get-go.
Monday, January 09, 2006 11:08:04 AM UTC
According to this Tom's Hardware review, USB 2.0 is in the same ballpark as Firewire for external HDDs:

http://www.tomshardware.com/2004/04/02/go_external/page7.html

Firewire *IS* slightly faster, but not significantly unless all you do is copy giant files all day long. If that's the case I wonder what websites you've been browsing, wink wink, nudge nudge!
Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.