How to place SuperFetch cache on an SSD?
- by Ian Boyd
I'm thinking of adding a solid state drive (SSD) to my existing Windows 7 installation.
I know I can (and should) move my paging file to the SSD:
Should the pagefile be placed on SSDs?
Yes. Most pagefile operations are
small random reads or larger
sequential writes, both of which are
types of operations that SSDs handle
well.
In looking at telemetry data from
thousands of traces and focusing on
pagefile reads and writes, we find
that
Pagefile.sys reads outnumber pagefile.sys writes by about 40 to 1,
Pagefile.sys read sizes are typically quite small, with 67% less
than or equal to 4 KB, and 88% less
than 16 KB.
Pagefile.sys writes are relatively large, with 62% greater than or equal
to 128 KB and 45% being exactly 1 MB
in size.
In fact, given typical pagefile
reference patterns and the favorable
performance characteristics SSDs have
on those patterns, there are few files
better than the pagefile to place on
an SSD.
What I don't know is if I even can put a SuperFetch cache (i.e. ReadyBoost cache) on the solid state drive.
I want to get the benefit of Windows being able to cache gigabytes of frequently accessed data on a relativly small (e.g. 30GB) solid state drive. This is exactly what SuperFetch+ReadyBoost (or SuperFetch+ReadyDrive) was designed for.
Will Windows offer (or let) me place a ReadyBoost cache on a solid state flash drive connected via SATA?
A problem with the ReadyBoost cache over the ReadyDrive cache is that the ReadyBoost cache does not survive between reboots. The cache is encrypted with a per-session key, making its existing contents unusable during boot and SuperFetch pre-fetching during login.
Update One
I know that Windows Vista limited you to only one ReadyBoost.sfcache file (I do not know if Windows 7 removed that limitation):
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.
I also know that the 4GB limit on the cache file was a limitation of the FAT filesystem used on most USB sticks - an SSD drive would be formatted with NTFS:
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
Can a ReadyBoost cache on an NTFS volume be larger than 4GB?
Update Two
The ReadyBoost cache is encrypted with a per-boot session key. This means that the cache has to be re-built after each boot, and cannot be used to help speed boot times, or latency from login to usable.
Windows ReadyDrive technology takes advantage of non-volatile (NV) memory (i.e. flash) that is incorporated with some hybrid hard drives. This flash cache can be used to help Windows boot, or resume from hibernate faster.
Will Windows 7 use an internal SSD drive as a ReadyBoost/*ReadyDrive*/SuperFetch cache?
Is it possible to make Windows store a SuperFetch cache (i.e. ReadyBoost) on a non-removable SSD?
Is it possible to not encrypt the ReadyBoost cache, and if so will Windows 7 use the cache at boot time?
See also
SuperUser.com: ReadyBoost + SSD = ?
Windows 7 - ReadyBoost & SSD drives?
Support and Q&A for Solid-State Drives
Using SDD as a cache for HDD, is there a solution?
Performance increase using SSD for paging/fetch/cache or ReadyBoost? (Win7)
Windows 7 To Boost SSD Performance
How to Disable Nonvolatile Caching