GOOSE IS READY FOR MY BALLS

Submitted by reeses on Sat, 2005-12-03 14:48. | |

People read on the surface that USB 2.0 is capable of 480 hoobajits per frabbit, which is higher than the 400 hoobafrabs regular old Firewire (or IEEE 1394) can do. As if! There are lots of technical reasons why 480 is not necessarily > 400, and none of those is "because I went to school in Kansas."

I have a friend who wants a reasonably priced portable hard drive to store music from his live performances, the rights to which he clearly owns or at least has unfettered rights to, and in no way includes media that would be criminal or just very, very naughty to distribute. During the holiday season, he'd like to throw this storage mechanism in his bag, visit his parents, and let them have free access to his performances. Parents are proud, and will sit through hours of their bass-playing son interminably thumping a root for nineteen hours on end, and believe me, Goose can thump a root for a long time.

"Listen, ma, I did them a little faster on this one!"

The discussion ensued, as it often does regarding external storage, around the relative merits of USB 2.0 drives and Firewire drives. This happens with any media discussion, whether it's MFM vs RLL, IDE vs SCSI, PATA vs SATA, etc. There's usually one version that's "better" and more expensive at a given time, and at the early stage, the higher end option requires a special interface not found on a commodity PC.

In the current case, we started talking about Firewire drives, and how a Firewire interface, even a slow Firewire-400 interface, will lead to better general purpose drive performance than a USB 2.0 interface, even given USB 2.0's purported bandwidth of 480 mbits. 480 mbits sounds faster than 400 mbits, and with all things being equal, this would be true.

However, USB sucks balls, balls being on my mind a lot lately for some reason. And thumping a root, too. Hmm. But external drives, if they have a USB interface, have a reputation for imposing only a very slight premium over the price of the drive itself. (In case that link goes away, it points to a 2.5" external drive enclosure with an IDE-to-USB 2.0 interface for $7.99. It looks as cheap as it sounds, and it's bottom-of-the-line, but it's also a consumer-price, not a wholesale or vertically-integrated vendor price.)

Firewire has a much different perception, very similar to that of 10k rpm SATA drives over 7200 rpm PATA drives -- i.e., you'd pay twice as much for better performance and end up with a smaller drive. Hence, the discussion about real-world performance of USB vs Firewire. Goose is a legendary phenom when it comes to cheapness, and dismisses some of our suggestions as spendthrift. He's the type of guy who would buy a Dell laptop and not feel bad about it.

USB 2.0 vs Firewire is one of those questions that can easily be answered by googling, but you'd end up at sites like "cdcrazypeople.com" above. Besides, all of my friends are solid enough that we'd prefer a specific recommendation based on personal experience. I.e.,"I have drive X, and the USB version is just as fast as the Firewire version, and I haven't had any problems with it whatsoever!" We all pretty much hate computers, computer hardware, and computer software, and have gone through so many crappy drives, motherboards, video cards, monitors, and routers that we have a hivemind about what the right choice is for a particular component. Or, much more importantly, we have a hivemind list of warnings about products to avoid.

Fortunately, I have a couple external Firewire drives (Maxtor One-Touch and One-Touch II) that also have USB interfaces. They're also not that expensive, since even the smallest Staples store will carry at least one of the dual-interface drives, which is why these are the ones I own. "Crap, I'm out of space and it's 8:35pm, what can I do?"

No, "Go to Fry's" is not the answer, at least not for a couple weeks. We have "Microcenter" here, which in the rest of the world is like a fat girlfriend or a Yugo -- the obvious joke being, you'll use it when you have to, but you wouldn't want your friends to catch you coming out of one.

Where was I? Oh yeah...

The advantage of a dual-interface drive is that Goose can use Firewire at home, where he has control over the environment and can use whatever esoteric interface he wants, but he can also take that drive to any computer less than seven years old, and be likely to find a USB receptacle into which he can plug it. He doesn't have to tell his parents to buy a Firewire card and to install drivers and hope that whatever version of Windows they're running doesn't blue screen so badly he spends his entire Christmas vacation restoring Cousin-Sister June-Sue's pictures of her new baby, which has webbed toes on only two of his feet.

Anyway, being the TREMENDOUS friend that I am, I offered to do some iozone benchmarks against one of my external drives, both using Firewire 400 and USB 2.0. I used the older drive, because I have an empty 75GB partition (formatted with slow-ass Mac HFS+, unfortunately, but that's common across the tests) and didn't want fragmentation coming into the picture. I turned off mdimport on the drive, because I didn't want to deal with THAT bag of turdburgers, and ran iozone -a twice on the drive while it was still mounted as a Firewire drive. There was another Firewire drive on the chain at the time, and of course, the famous iSight. This was also connected through the "hub" on my Cinema Display, so there were all kinds of potential drains on the throughput. However, I stepped away from the computer for the duration of the test. After the two Firewire runs, I unmounted all my drives, turned them off, disconnected them, and reconnected only the series-one One-Touch drive via USB 2.0. The Mac identified the filesystems on the drive, and put the pretty icons on the desktop, costing me valuable system performance. I ran the same test twice on the same drive, and one thing jumped out right away:

  • output-fw-1

    • Run began: Sat Dec 3 10:37
    • Run ended: Sat Dec 3 11:10

  • output-fw-2

    • Run began: Sat Dec 3 14:14
    • Run ended: Sat Dec 3 14:48

  • output-usb-1

    • Run began: Sat Dec 3 14:55
    • Run ended: Sat Dec 3 16:08

  • output-usb-2

    • Run began: Sat Dec 3 16:13
    • Run ended: Sat Dec 3 17:26

Not yet having done the analysis of the actual output files, the tests running on Firewire completed in roughly 33-34 minutes, while the tests running on USB 2.0 took about an hour and thirteen minutes. What's striking is the consistency of the results. It usually doesn't work out that cleanly.

http://www.astrogoth.com/~reeses/media/blog/iozoneusbvsfw.gif

Notice the pretty blue-and-purple blanket covering the green-and-red one?

This is obviously an artificial benchmark that writes and reads about 30 gigs or so over the test run. While I didn't boot my mac in "safe mode", with as many services and applications turned off as possible, I did close Safari, Mail.app, NetNewsWire, and other applications that I might use that would steal cycles from the IO layer. I walked away from the computer, and let it do its thing.

But who does that in real life? First of all, maybe Firewire is superior only in that situation. Maybe when you're browsing the web or listening to music, it falls to poo. We know that's probably not the case, because Firewire devices are "smarter" and rely less upon the general purpose host CPU for its functionality, but I wanted to be honest and produce more results, where I tested Firewire and USB under my own normal operating conditions.

Since it's well known that USB relies heavily upon the CPU for its functionality, I fully expected its performance to degrade even further when running iozone as I attended to other tasks.

Now, none of these other tasks involved that drive. As I mentioned, mdimport ignores that drive, it's an empty partition, and the only other partition on that drive is a bootable mirror that I update manually when I want to snapshot my internal drive. I just used the main CPU for day-to-day tasks, such as browsing the web, reading and writing email, and typing this entry. I didn't do any "sneaky tricks" or anything the least bit out of the ordinary for a baseline load. I didn't compile any code, I didn't evaluate any huge Mathematica notebooks. The one thing I did do during each test was to watch a DVD. Not D.E.B.S., although I would have liked to, but my wife was still up, working on a paper for her master's. It was a normal mpeg2 DVD that probably installed malware on my machine, but I didn't decode divx, h.264, or anything else CPU-killing. I was trying to think of what people in West Virginia do with their computers, and other than look at articles about flame-throwing car exhaust with a casual "done that" attitude, I couldn't think of anything other than downloading instructions for making meth from wood alcohol and concrete cleaner, and watching the occasional movie.

I didn't want to create a crippling situation, hammering the CPU until it was starved for cycles, I just wanted to see if it was like burning CDs back in the 90s, when you couldn't even touch the computer or let the screensaver kick in unless you needed another coaster.

  • output-fw-busy-system-1

    • Run began: Sat Dec 3 21:03
    • Run ended: Sat Dec 3 21:42

  • output-fw-busy-system-2

    • Run began: Sat Dec 3 22:06
    • Run ended: Sat Dec 3 22:47

  • output-usb-busy-system-1

    • Run began: Sat Dec 3 17:50
    • Run ended: Sat Dec 3 19:02

  • output-usb-busy-system-2

    • Run began: Sat Dec 3 19:45
    • Run ended: Sat Dec 3 20:58

This was actually a bigger surprise to me than I thought. I was doing more stuff when I had the firewire drives mounted, but supposedly that doesn't make as much of a difference. I was doing a lot of iPhoto and Photoshop stuff for Kat, which apparently slowed the average iozone -a execution time down from 33-34 minutes to 39-41 minutes. Then again, those are too consistent for bursty activities like "crop, enhance, resize, blah blah". One or both of the figures may be a fluke, and I might run an overnight test with the -g flag set to something large so the entire problem set doesn't fit into RAM. Or I might not.

Anyway, the long and short of it is, yes, Goose, all else being equal, Firewire 400 is significantly faster than USB 2.0, on a Maxtor One-Touch drive on a G4 PowerBook running OS X 10.4.3. I of course retained all of the output files from iozone, so you can do your analysis in Excel if you'd like.

Post new comment

Captcha Image: you will need to recognize the text in it.
Please type in the letters/numbers that are shown in the image above.