3. Tuning and Troubleshooting SuperFetch
Windows 7 incorporates an active performance-enhancing technology called SuperFetch.
This intelligent caching routine, which debuted in Windows Vista, is
designed to overcome performance problems caused by the biggest
bottleneck on most PCs today, the disk I/O subsystem. SuperFetch
observes your computer usage patterns over extended stretches of time
(noting the programs you run and the days and times you typically run
them) and adjusts caching behavior to optimize performance of the
programs and data files you use most frequently.
SuperFetch runs as a
service and actively fills unused memory with program and data files it
believes you are likely to run in the current session, based on prior
observations of your working habits. The irony of SuperFetch is that its
performance-analyzing, cache-creating ways can actually impair
performance, at least temporarily.
You can see
SuperFetch in operation using the details pane for disk activity in
Resource Monitor. Look for an instance of Svchost.exe running under the
System account and hosting more than a dozen services. Its impact on CPU
performance should be negligible, and in normal operation it runs at
Very Low priority, fetching code and data at a rate of a few pages per
second. SuperFetch
can have a noticeable if temporary impact on disk performance when it
is in learning mode. You're most likely to see temporary slowdowns
caused by SuperFetch under these specific circumstances:
After you first
install and run Windows 7, the system begins a series of tuning actions
in which it tunes the boot prefetcher and SuperFetch
caching. These runs normally begin at least 40 seconds after all boot
operations have stopped. Assuming that you use your normal assortment of
applications during the first three or four boot cycles, you should see
a profound improvement in times to start Windows and to load programs.
When
you add new software, especially large, complex programs, the system
shifts into a learning mode to improve boot prefetching. This can have
an impact on your next several boot cycles as the system identifies the
new files and loads them into the SuperFetch cache.
Adding
or changing hardware devices and drivers can also throw SuperFetch into
learning mode, potentially causing minor impacts on performance and
slowing down system starts.
Beyond knowing of
its existence and allowing it to perform properly, you can do little to
fine-tune or optimize the performance of SuperFetch.
4. Using ReadyBoost to Compensate for a Slow Hard Disk
ReadyBoost uses external memory devices (such as USB 2.0 flash drives and Secure Digital cards)
to cache disk content of all kinds, reducing the need for
time-consuming hard disk access. This is yet another feature introduced
in Windows Vista that has been significantly improved for Windows 7.
Noteworthy changes include support for concurrent use of multiple flash
devices and for caches larger than 4 GB. ReadyBoost supports the exFAT, FAT32, and NTFS file systems.
ReadyBoost technology
takes advantage of the fact that flash memory typically offers lower
seek times than do hard disks with rotating magnetic media. That fact
means your system can get to a given location on a flash drive more
quickly than it can to a corresponding spot on a hard disk. Hard disks
are generally faster for large sequential reads; flash drives can be
quicker for small, random reads. When a supported external memory device
is available, ReadyBoost caches data and program code in flash memory
and is able to retrieve small chunks of that memory, when needed, more
quickly than it could if it relied only on the hard disk.
Although it got a lot of favorable press when it debuted with Windows Vista a few years ago, ReadyBoost
never quite lived up to its promise. And with steady improvements in
hardware design since that time, it's become even more of a specialized
tool. On a modern, full-sized notebook or desktop PC that was designed
to run Windows 7, chances are you'll see little or no improvement by
using ReadyBoost.
The scenarios in which this technology is most likely to be helpful
involve a combination of bottlenecks: limited RAM and a slow hard disk,
possibly combined with a low-power CPU. That combination is most likely
to be found on small, portable devices popularly known as netbooks.
Adding a flash drive of 2 GB or more and dedicating it to ReadyBoost might show noticeable performance improvements in that scenario.
With a fast hard drive
and sufficient RAM for caching, you're unlikely to notice any benefit
from ReadyBoost. In fact, if you have Windows 7 installed on a fast
solid-state disk (SSD), ReadyBoost, SuperFetch, and boot prefetching are
all disabled. None of those tools will offer a performance boost in
that configuration.
|
Because an external
memory device can be stolen by an attacker with nefarious intentions,
and because it can be removed without warning to the system, all data
cached via ReadyBoost is encrypted and backed up on the hard disk (as
well as being compressed). Encryption ensures that the data can't be
read on another system, and backup enables Windows to revert to the hard
disk cache in the event that the ReadyBoost drive is removed.
Windows supports the following form factors for ReadyBoost:
When you connect a device
of one of these types to your system, Windows runs a quick performance
test to see if the device meets minimum standards required for
ReadyBoost. Those standards are
In addition, the device must have at least 256 MB available for the ReadyBoost cache.
Note:
ReadyBoost
does not support external card readers. If Windows Explorer shows a
volume letter for a drive without media (as it does, for example, for
card-reader drives or floppy drives), inserting flash media for that
volume letter will not give you a Ready-Boost drive.
Windows 7, unlike Windows Vista, supports multiple ReadyBoost
drives. If you add two 4-GB USB flash drives to a system, you can
combine them to create a single 8-GB Ready-Boost cache.
To use ReadyBoost,
first plug a suitable external memory device into your computer. If an
AutoPlay window offers the Speed Up My System Using Windows ReadyBoost
option, click it. If no AutoPlay dialog box appears, right-click the
device icon in the Computer window and click the ReadyBoost tab.
When you inserted the
device, Windows ran several brief performance tests to determine whether
the device was ready for ReadyBoost. If any of these tests fail, the
drive is rejected and you see a red X and a message telling you that the
device "does not have the required performance characteristics." If you
think the result is in error, click Test Again to rerun the performance
benchmark. A device that passes the test will show a dialog box like
the one in Figure 2.
At this point, you have two choices:
If you want all
available storage on the flash device to be used for a ReadyBoost cache,
select Dedicate This Device To ReadyBoost. This option is appropriate
if the USB drive is meant to be a long-term fixture on a desktop
computer.
If you
want to reserve some space on the drive for data files, select Use This
Device, and then adjust the slider to specify the amount of space you
want to use for Ready-Boost. Then click OK. This option is most useful
for scenarios where you're traveling with a large (4 GB or more) flash
drive and you only need 2 GB or so to get the most from ReadyBoost.
Microsoft estimates that
you can benefit from a ReadyBoost cache equal to at least as much as
your system RAM and as much as three times physical RAM—so, for example,
a Ready-Boost cache of 1–3 GB is appropriate on a 1-GB system.