I use a MacBook Air as my primary machine, and the 128GB SSD means space is precious. To save about 10 GB, I've been running Parallels with a Windows XP VM off an external USB hard drive, which performs as well in everyday use as running the VM off the internal SSD.

So, I bought a tiny 32GB USB 2.0 flash drive, plugged it into the MacBook Air, formatted it first as ExFAT (which was slow), then as Mac OS Extended (Journaled) (which was also slow), and copied over my VM file, and ran Parallels off it.

My full experience is documented here: http://www.midwesternmac.com/blogs/jeff-geerling/running-windows-xp-vm

Straight file copies are really fast — 30 MB/sec read (solid the whole time), and 10-11 MB/sec write (solid the whole time). But I noticed that once XP started running, the disk access rates were in the low KB ranges.

Are USB flash drives really that poor at random access, or could I possibly be missing something (the format of the flash drive, etc.?)?

Of note, I've tried the following, to no great effect:

  1. Formatting the drive as either ExFAT or Mac OS Extended (Journaled)
  2. Unplugging all other USB devices and turning off Bluetooth (which runs on the right-side-port USB bus).
  3. Plugging in the flash drive either direct in the right side port, or the left side port, or into a USB 2.0 hub
link|improve this question
The main question has to do with the bold paragraph above. I KNOW that flash drives don't have modern HDD throughput ratings, but can someone explain why random access seems so poor? Could it be Parallels, or are flash drives really that bad at random access? – geerlingguy Jan 20 at 15:30
1  
Heh I have a Macbook Air too and was planning on doing the same thing... looks like I won't be now. If there's a memory stick that uses the Thunderbolt port, now then we'd be in business. – Matt Frear May 23 at 16:02
feedback

1 Answer

up vote 3 down vote accepted

I was just going to comment with this, but ran out of room...

USB flash drives are very poor for random access read and write unless you specifically purchase a USB flash drive for speed. You'd know if you had a 'fast' USB thumb drive since you probably would have paid two or three times more for it. This versus this. 70MB/s & 39MB/s versus 155MB/s & 150MB/s.

The real issue is that the USB 2.0 port on the Macbook Air maxes out. The theoretical maximum data rate in USB 2.0 is 480 Mbit/s (60 MB/s) per controller and is shared amongst all attached devices. So even if you get a 150MB/s USB drive, you'll top out at around 60MB/s.

link|improve this answer
Even so, though... the interface is coming nowhere near maxing out while I'm running the VM. I'm specifically wondering about whether I can improve heavy I/O performance. Raw throughput doesn't seem to be the problem here. – geerlingguy Jan 18 at 3:58
Indeed, your issue is the "cheap 32GB USB flash drive". You can't get good performance from that. Consider that SATA's lowest speeds are 1.5GB/s (Giga, not Mega). 30MB/sec or so is just not fast enough to do anything and if it's just some garbage USB drive, I'd bet you're only getting 17MB/s on random write - or less. You need to either switch to a external spinning drive, a fast SSD, or a faster USB. It's not going to be "cheap" either. The cheapest option would be an iPod (with spinning drive) or and external hard drive. – skub Jan 18 at 13:18
Even 17 MB/s random write is better than the last PC's disk I owned (ATA/33, something like 8-10 MB/s random write), so I don't think that would be the problem, really. I see a lot of people booting linux and other OSes off flash drives without any reports of lagginess. – geerlingguy Jan 18 at 21:35
ATA/33 moves data at 33MB/sec which is THREE TIMES faster than your USB drive and it was introduced 10+ years ago. Modern hard drives move GIGABITS of data. My explanation is sound and correct. If you want better performance use or buy a different device. – skub Jan 19 at 0:07
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.