Windows 8 has several features that affect how disks are used. These include:
-
Windows ReadyBoost
Boosts system performance by using USB flash devices as additional sources for caching
-
Windows ReadyDrive Boosts system performance on mobile computers equipped with hybrid drives
-
Windows SuperFetch Boosts system performance by using a modified memory management algorithm
Each of these features is discussed in the sections that follow.
1. Understanding and Using Windows ReadyBoost
A computer’s disk drives aren’t used just for reading and writing
application data and user documents. The operating system makes
extensive use of a computer’s disk drives for paging files and for the
system cache. Because reading from and writing to a disk is
significantly slower than reading from and writing to physical memory
(RAM), these operations can cause a bottleneck that degrades
performance. Windows 8 includes Windows ReadyBoost as a way to reduce the impact related to reading and writing the system cache.
With Windows ReadyBoost, USB
flash devices with sufficiently fast memory are used to extend the
disk-caching capabilities of the computer’s main memory. Using flash
devices for caching allows Windows 8 to make random reads faster by
caching data on the USB flash device instead of a disk drive. Because
this caching is applied to all disk content, not just the page file or
system dynamic-link libraries (DLLs), the computer’s overall
performance is boosted because flash devices can be read up to 10 times
faster than physical disk drives.
USB flash devices that can be used with Windows ReadyBoost include USB 2.0 or higher flash drives, Secure Digital (SD)
cards, and CompactFlash cards. These devices must have sufficiently
fast flash memory and be at least 256 MB or larger in size. To enhance
performance, I recommend purchasing USB flash devices with high-speed
memory. If the flash device has both slow and fast flash memory, only
the fast flash memory portion will be used for boosting performance.
From 230 MB to 15,196 MB of flash memory can be reserved on a USB flash
device for ReadyBoost.
A recommended amount of memory to use is from one to three times the
available system memory. However, keep in mind that as of the time of
this writing, the most you can reserve is 15,196 MB.
Memory on USB flash devices is primarily used for random I/O because
most flash devices are slower than a disk drive for sequential I/O.
Windows ReadyBoost maximizes performance by automatically passing
large, sequential read requests to the computer’s disk drive for
servicing. To allow a USB flash device to be removed at any time, all
data writes are made to the hard disk before being copied to the flash
device. This means all data stored on the flash device is duplicated on
the hard disk, and there is no potential for data loss when removing
the flash device. Additionally, because the flash device’s memory might
contain sensitive information, Windows ReadyBoost encrypts the data so
that it can be used only with the computer on which it was originally
written.
2. Enabling and Configuring ReadyBoost
With Windows ReadyBoost, USB flash devices with sufficiently fast
flash memory can be used as additional sources of system cache. When
you insert a USB flash device into a USB 2.0 or higher port, Windows 8
analyzes the speed of the flash memory on the device. If the flash
memory performs at a sufficiently high speed, the computer’s physical
memory can be extended to the USB flash device. In most cases, you’ll
want the flash memory to be at least as fast as the computer’s bus
speed.
Tip
Windows can incorrectly flag a device as failing to meet the
performance requirements. If a device fails the initial performance
test, you can retest the device by using the ReadyBoost tab. In File
Explorer, press and hold or right-click the device, and then tap or
click Properties. In the Properties dialog box, tap or click the
ReadyBoost tab, and then tap or click Test Again.
The following steps show how you can enable and configure how
Windows ReadyBoost works the first time you use a USB flash device with
a computer:
-
Insert a USB
flash device into a USB 2.0 or higher port. The AutoPlay dialog box
should be displayed automatically (unless you’ve changed the AutoPlay
defaults in Control Panel).
-
When you tap or click Speed Up My System–Windows ReadyBoost, the device’s Properties dialog box opens to the ReadyBoost tab, shown in Figure 1. Do one of the following, and then tap or click OK:
-
If you want the device to automatically reserve the maximum amount
of space for ReadyBoost, select Dedicate This Device To ReadyBoost.
Choosing this setting prevents a user from writing files to the device.
It simply configures ReadyBoost to use as much space as can be reserved.
-
If you want to use less space than the maximum possible, select Use
This Device, and then use the Space To Reserve For System Speed slider
or combo box to set the amount of space to use with ReadyBoost. If you
reserve less than the total amount of space available, the free space
can be used for files and data.
Windows 8 extends the computer’s physical memory to the device. The
default configuration enables Windows ReadyBoost to reserve all
available space on the device for boosting system speed.
Note
To use a USB flash
device with ReadyBoost, the device must have at least 2.5 megabits per
second (Mbps) throughput for 4-kilobyte (KB) random reads and 1.75 Mbps
throughput for 512-KB random writes. Although you can enable ReadyBoost
on a device you’ve encrypted with BitLocker
To Go, keep in mind that encryption and decryption processes can affect
read/write performance. If you use BitLocker To Go and ReadyBoost, I
recommend that you also automatically unlock the device when the device
is inserted. Otherwise, the user has to validate the device prior to
getting the performance benefits of ReadyBoost.
To use Windows ReadyBoost with a USB flash device that you have already inserted or that you previously declined to use with Windows ReadyBoost, follow these steps:
-
Open File Explorer or another Explorer view, such as Computer.
-
Press and hold or right-click the USB flash device in the Devices With Removable Storage list, and then tap or click Properties.
-
On the ReadyBoost tab, configure the options as discussed in step 2 of the previous procedure. Tap or click OK.
For USB
flash devices that do not support ReadyBoost, you cannot enable the
device. You can safely remove a USB flash device that uses the entire
device for ReadyBoost at any time without losing data or negatively
impacting the system. However, when the device is removed, system
performance returns to its normal level—the performance level
experienced without the device. To safely remove a device containing
both reserved ReadyBoost space and data files, follow these steps:
-
Open File Explorer or another Explorer view, such as Computer.
-
Press and hold or right-click the device, and then tap or click
Eject. If you’ve opened files on the device or opened the device for
viewing in File Explorer, you might need to close files and File
Explorer windows before you can eject the device.
3. Understanding and Using Windows ReadyDrive
Windows ReadyDrive improves performance on mobile computers equipped with hybrid drives. A hybrid drive is a drive that uses both flash
RAM and a physical drive for storage. Because flash RAM is much faster
than a physical disk, mobile computers running Windows 8 write data and
changes to data to the flash memory first and periodically sync these
writes and changes to the physical disk. This approach reduces the
spinning of the physical drive and thus saves battery power.
The flash RAM on hybrid drives can be used to provide faster startup
and resume from sleep or hibernation. In this case, the information
needed for starting or resuming the operating system is written to the
flash RAM prior to shutting down, entering sleep, or going into
hibernation. When you start or wake the computer, this information is
read from the flash RAM.
You do not need to enable ReadyDrive. ReadyDrive is enabled for use automatically on mobile computers with hybrid drives.
4. Understanding and Using Windows SuperFetch
Windows 8 improves performance and responsiveness by changing the way user processes and background
processes are used. In Windows XP, user processes and background
processes have the same memory-use prioritization: user processes and
background processes are both loaded into memory as they are used.
Because there is no prioritization, there is often contention for
memory, and performance lags often occur as well because background
processes remain resident in memory after they run. Therefore, data for
user processes must be loaded into memory when it is requested. Windows
8 corrects this issue by ensuring that background processes are unloaded after they run and when data for user processes is reloading into memory.
In Windows XP, user processes and background processes have the same I/O
priority, which often results in conflicts and poor read/write
performance. Windows 8 corrects this by implementing high-priority I/O
and low-priority I/O queues. High-priority I/O is used by user
processes for read and write operations to physical drives.
Low-priority I/O is used by background process read and write
operations to physical drives.
Note
With Windows 8, many services and routine housekeeping tasks run as
background processes. For example, on Windows 8, Disk Defragmenter is
scheduled to run automatically to periodically defragment disks. When
Disk Defragmenter runs, it runs as a background process and uses
low-priority I/O.
The key feature that makes memory and I/O prioritization work is Windows SuperFetch. Windows SuperFetch
improves system performance by using a modified memory-management
algorithm. Unlike the memory-management algorithm in Windows XP and
earlier versions of Windows, SuperFetch optimizes memory usage based on
the way the current user is using the computer. SuperFetch does this by
performing the following tasks:
-
Differentiating between user applications and background services running on the computer
SuperFetch makes the computer more responsive to user requests by
prioritizing the current user’s processes over background tasks.
Because user processes always have priority over background tasks,
background tasks do not take up all the processor time and the system
remains responsive to user requests.
-
Optimizing memory for users after running background tasks
Housekeeping tasks on Windows 8 make better use of process idle time
than they did on earlier versions of Windows. More system and
maintenance tasks, such as Disk Defragmenter and Disk Backup, run
during idle time. When the computer is idle, background processes run
as they normally would. However, when background processes end,
SuperFetch repopulates memory to the state that it was in prior to
running the background processes. This ensures that memory is optimized
for user processes and that the computer is responsive to user requests.
-
Tracking the most frequently used applications and anticipating user needs
SuperFetch keeps track of which applications users run most frequently
and also tracks when those applications are typically used. SuperFetch
then uses the tracking information to preload the application and ready
it for use when it expects that the user will need the application.
This ensures faster startup for applications and faster user switching
over time.
-
Taking advantage of the low-priority I/O designation
SuperFetch takes advantage of the high-priority I/O and low-priority
I/O queues in Windows 8 to improve read/write times for user processes
and improve a computer’s overall responsiveness. When multiple
processes are competing for I/O, high-priority processes always get
more I/O time than low-priority processes do. As a result, user
processes and applications have better performance, and there is less
contention for I/O time when both user processes and background processes are running.
All versions of Windows 8 support SuperFetch. As an administrator, you should understand how SuperFetch works and the way it is configured. Some basic characteristics of SuperFetch follow.
-
Runs as a service named SuperFetch. This service runs automatically at startup and logs on using the LocalSystem account.
-
Uses the Svchost.exe executable, running in a network-restricted
mode. This means SuperFetch can access only the local computer and
doesn’t have access to any networks to which the computer might be
connected.
-
Depends on the Filter
Manager component for proper operations. Filter Manager provides file
information and file-system information needed by SuperFetch, and it is
installed automatically with the operating system.
-
Writes prefetch data to the %SystemRoot%\Prefetch folder. The
prefetch data is used to quickly start applications. Within the
Prefetch folder, you’ll also find several database files used to track
application usage history and speed up application performance.
Application faults are also tracked in a database history file.
Note
The Prefetch folder is self-maintaining. There’s no need to delete it or empty its contents.
When you make major changes to the operating system,
install service packs or updates, or install or reconfigure
applications, users may occasionally experience slow startup. The
extent to which this occurs depends on how extensive the changes are
and how much memory-usage information SuperFetch has to rebuild.
Sometimes, such as when you install a new service pack, several
restarts are required over time to normalize the startup speed.