Back in April, I posted a blog entry on the ReadyBoost feature - the Windows Vista feature that allows you to use a USB key as virtual memory in order to enhance performance. While I originally intended the post to be an overview of ReadyBoost, it proved quite popular and garnered quite a few questions seeking more detail. I apologize that it's taken this long, but I've finally tracked down "the man" who could provide the answers - Matt Ayers, who is the Program Manager in the Microsoft Windows Client Performance group and basically owns the ReadyBoost feature.
Instead of updating the original post, I created this new post entry that will be the home of the Q&A I receive. That way, people won't have to wade through opinions and comments and can come to this post to see only Q&A.
Note: Matt will be speaking at Tech*Ed where he will present a session on on Vista Perf Improvements (ReadyBoost, ReadyDrive and SuperFetch – CLI312)
From Matt Ayers: Overall, as many posters have pointed out, the feature is designed to improve small random I/O for people who lack the expansion slots, money, and or technical expertise to add additional RAM. As y’all know, adding RAM is still the best way to relieve memory pressure. Thanks, again, for your interest, questions and ideas."
"I'm the Program Manager in the Microsoft Windows Client Performance group and own the ReadyBoost feature. I wanted to give some offical answers based on the excellent questions and discussions that I've seen in this blog, to date. Also, I'll be using this as a starting point for the official ReadyBoost FAQ.
Overall, as many posters have pointed out, the feature is designed to improve small random I/O for people who lack the expansion slots, money, and or technical expertise to add additional RAM. As y’all know, adding RAM is still the best way to relieve memory pressure.
Thanks, again, for your interest, questions and ideas."
Q: What perf do you need on your device?
A: 2.5MB/sec throughput for 4K random reads and 1.75MB/sec throughput for 512K random writes
Q: My device says 12MB/sec (or 133x or something else) on the package but windows says that it isn't fast enough to use as a ReadyBoost device... why?
A: Two possible reasons:
- The numbers measure sequential performance and we measure random. We've seen devices that have great sequential perf, but horrible random
- The performance isn't consistantly fast across the entire device. Some devices have 128M of lightning fast flash and the rest of the device is really slow. This is fine for some applications but not ReadyBoost.
Q: What's the largest amount of flash that I can use for ReadyBoost?
A: You can use up to 4GB of flash for ReadyBoost (which turns out to be 8GB of cache w/ the compression)
Q: Why can't I use more than 4GB of flash?
A: The FAT32 filesystem limits our ReadyBoost.sfcache file to 4GB
Q: What's the smallest ReadyBoost cache that I can use
A: The smallest cache is 256MB (well, 250 after formatting). Post beta2, we may drop it another 10 MB or so.
Q: Ok... 256M-4GB is a pretty big range... any recommendations?
A: Yes. We recommend a 1:1 ratio of flash to system memory at the low end and as high as 2.5:1 flash to system memory. Higher than that and you won't see much benefit.
Q: Isn't this just putting the paging file onto a flash disk?
A: Not really - the file is still backed on disk. This is a cache - if the data is not found in the ReadyBoost cache, we fall back to the HDD.
Q: Aren't Hard Disks faster than flash? My HDD has 80MB/sec throughput.
A: Hard drives are great for large sequential I/O. For those situations, ReadyBoost gets out of the way. We concentrate on improving the performance of small, random I/Os, like paging to and from disk.
Q: What happens when you remove the drive?
A: When a surprise remove event occurs and we can't find the drive, we fall back to disk. Again, all pages on the device are backed by a page on disk. No exceptions. This isn't a separate page file store, but rather a cache to speed up access to frequently used data.
Q: Isn't user data on a removable device a security risk?
A: This was one of our first concerns and to mitigate this risk, we use AES-128 to encrypt everything that we write to the device.
Q: Won't this wear out the drive?
A: Nope. We're aware of the lifecycle issues with flash drives and are smart about how and when we do our writes to the device. Our research shows that we will get at least 10+ years out of flash devices that we support.
Q: Can use use multiple devices for EMDs?
A: Nope. We've limited Vista to one ReadyBoost per machine
Q: Why just one device?
A: Time and quality. Since this is the first revision of the feature, we decided to focus on making the single device exceptional, without the difficulties of managing multiple caches. We like the idea, though, and it's under consideration for future versions.
Q: Do you support SD/CF/memory stick/MMC/etc.?
A: Mostly. In beta2, we added support for a small number of SD/CF cards on internal USB2 & PCIe busses. RC1 has a much broader support range.
Q: Why don't you support SD on my USB2.0 external card reader?
A: We unfortunately don't support external card readers - there were some technical hurdles that we didn't have time to address. In general, if a card reader shows a drive without media in it (like a floppy drive or CD ROM does), we can't use it for ReadyBoost.
Q: Will it support all USB drives, regardless of how they are ID'd to the OS ("hard disk drive" or "Device with Removable Storage")?
A: We have no way to tell what is on the other end of a USB cable so we do some basic size checks (since no one has a 200GB flash device 😉 ) and then perform our speed tests. HDD will not, however, pass our speed tests, and there is no benefit to using a USB HDD for ReadyBoost.
Q: Can you use an mp3 player to speed up your system?
A: Not currently. MP3 players use the 'plays for sure' interfaces to expose themselves to Windows. We require that the device appear as a disk volume. These aren't currently compatible.
Q: How much of a speed increase are we talking about?
A: Well, that depends. On average, a RANDOM 4K read from flash is about 10x faster than from HDD. Now, how does that translate to end-user perf? Under memory pressure and heavy disk activity, the system is much more responsive; on a 4GB machine with few applications running, the ReadyBoost effect is much less noticable.
Q: I can't get my device to work with ReadyBoost... can I lower the perf requirements?
A: Unfortunately, no. We've set the perf requirements to the lowest possible throughput that still makes your system faster. If we lowered the perf requirements, then there wouldn't be a noticeable benefit to using ReadyBoost. Remember, we're not adding memory, we're improving disk access.
Q: Which manufacturers support ReadyBoost?
A: Well, I hope that all of them do, eventually. Right now, we're working with manufacturers to create a program that will allow them to identify ReadyBoost capable devices on their packaging.