Windows Vista:
System Performance
Enhancements
Simon Martyn
Infrastructure Specialist
The IQ Business Group
Technology Services Division
Agenda
• Current performance limitations
• Optimizing Memory Use
– SuperFetch™
• Avoiding the Disk Bottleneck
– ReadyBoost™
– ReadyDrive™
• Supporting infrastructure
– Low-priority I/O
– Diagnostic tools
What Causes Inconsistent Responsiveness?
• Poor memory content
– Performance erodes over time
• The application has not run recently
• Background applications have swept through memory
– Transitions affect memory
• After boot or hibernate
• After Fast User Switch
• After lunch or big application
• Random/blocking disk operations
– Page faults
– Program loads
– Disk spin up time
– Disk seeks
The Seek Problem
• Drive industry continues to deliver impressive data rate, rotation and
interface speed improvements
– ATA/33 ATA/66 ATA/100 SATA
– 4200RPM 5400RPM 7200RPM 10000RPM
– 2 MB 8 MB 16 MB
– Result: Sequential IO rates of 80 MB/s+
• At that rate, 1 GB of RAM fully populated in ~12.8sec
• Seek times improving, but not as significantly
– 3.5” Desktop drive avg seek ~10 mSec
– 2.5” Mobile drives ~12.5 mSec
– Much better when hitting the track buffer
– Result: Random IO rate limited to an effective 1MB/sec
• At that rate, populating 1GB of RAM takes ~1024sec!
DLLs On Disk
.data pages .text pages PE Header
Dram
Cache
MFT Entry
Directory Entry
The Seek Problem
• 50% of MobileMark 2005 I/Os are 4 KB and random
• Files and structured files
– A single DLL is generally 5 to 6 Disk Locations (min)
• Directory, MFT Entry, and other File System Metadata
• PE Hdr page, .text pages, .data pages, .rsrc pages, etc.
– Programs like Internet Explorer, Adobe Reader, or
Outlook use over 100 DLLs
• Reliability and durability
– Logging, Transactions, Application Temp Files
• A simple Registry Write can require 5 to 6 Random and
Ordered Disk Writes
• Synchronous blocking nature of page faults
– Code pages, Stack pages, and Heap pages can all be
faulted upon
– Hard to develop Asynchronous Client applications
What Do Users See?
• Slow state transitions
• Decreased application responsiveness under memory pressure
• Slower program launch
How Does Microsoft Windows Vista Help?
• Provides new innovations in
memory management
• Avoids hitting the disk where possible
• Prioritizes I/O when you do hit the disk
• Contains new diagnostic tools
Smart Memory Management
Current Memory Management
Memory
Photo Editor
Internet Explorer memory cache
Outlook free memory
Microsoft
Disk
Word
Startup Apps
OS
SuperFetch
• SuperFetch is a breakthrough in
memory management
– Optimizes based on usage patterns over time
– Takes into account frequency of page usage,
usage of page in context of other pages
in memory
– Adapts to memory usage patterns, including complex usage
scenarios
– Can differentiate based on user, time and day of week
SuperFetch
Memory
Photo Editor
Internet Explorer
memory cache
Outlook
Microsoft
Word Disk
Startup Apps
OS
SuperFetch
• SuperFetch is proactive and resilient
– Smart about getting the right content into
memory early
– Keeps correct content in memory
Keeping The Right Data In Memory
Traditional Superfetch
Photoshop Photoshop
Internet Explorer Idle Tasks
Internet Explorer
memory Outlook
Outlook
Idle Tasks cache
Idle Tasks
Microsoft
MS Tasks
Idle Word Word
Startup Apps Startup Apps
OS OS
SuperFetch
• SuperFetch is efficient
– Uses low priority I/O for pre-fetching
and pre-population
• SuperFetch manages RAM and
cache memory
Avoid The Disk Bottleneck
ReadyBoost
• Flash memory serves as a cache
for SuperFetch
– External USB keys, SD cards, Compact Flash, internal PCIe cards
• Allows fast reads to satisfy page faults when page is not in main
memory
– Up to 10x faster than random HDD reads
• Caches data proactively based on
user activity
ReadyBoost Properties
• Reliable
– Write-through cache allows user to remove device
at any time
– Device wear is not an issue
• Unique write gathering algorithm optimizes performance and
wear patterns
• Projected life of 19.4 – 1823 years depending on device size
and variant (10K or 100K write-erase cycles)
• Secure
– Data is encrypted using AES-128
• Efficient
– Data is compressed by a factor of 1.8X to 2.3X
ReadyDrive Hybrid Hard Disk
• A Nonvolatile cache (NV Cache) is added to
the hard disk drive
– Allows data to be read and written while platter is
spun down
– Data in cache persisted when powered down
– SuperFetch provides efficient cache utilization
Dram
Up to 90% Power Saving Cache
over conventional HDD
Read and Write while SATA or
spindle is stopped NV
Cache PATA
Interface
DLLs On Disk
.data pages .text pages PE Header
Dram
Cache
MFT Entry
Directory Entry
DLLs On ReadyDrive H-HDD
.data pages .text pages
PE Header
Dram
Cache
NV Cache
Directory Entry
MFT Entry
NV Cache contents
• Cached writes
• Boot/resume sectors
• Sectors pinned by OEMs
• Read cache
ReadyDrive Benefits
• Performance
– Faster Boot
– Faster Hibernate/Resume
– Performance improvement from minimizing disk seeks and
enabling more IOs per second
• Power Savings/Battery Life
– Windows Vista can reduce HDD power consumption of typical 2.5”
HDD by 70-90% when operating on battery by keeping magnetic
platter spun down most of the time
• Reliability improvements
– Vibration or impact during writes not a problem with
NV memory
• Reduced noise
ReadyDrive ATA Command Set
• A new ATA command set has been specified by Microsoft, HDD
manufacturers, and industry partners which enables rich management
of the NV Cache
• Single ATA command with sub-commands
– Identify hybrid hard disk functionality
– Add/Remove LBAs from NV Cache “pinned set”
– Query NV Cache pinned set
– Enter/Leave power saving mode
– Etc.
• Accepted by T13 for standardization in the
ATA 8 specification
• Opportunity for innovation by device and host
moving forward
ReadyBoost And ReadyDrive
System Memory
RAM
ReadyBoost
Write OEM Boot Read Read Cache NVRAM
Cache Pinning Data Cache
ReadyDrive
HDD Platter
Magnetic
ReadyBoost And ReadyDrive
• ReadyBoost and ReadyDrive are
complementary technologies
• Both powered by SuperFetch
• ReadyDrive
– Helps state transitions
– Can pin and accelerate some data
– Improves reliability
– Saves power
• ReadyBoost
– Large read cache
– Relieves memory pressure
Prioritized I/O
Low-priority I/O
• Why low-priority I/O?
– Developers have long been able to throttle CPU usage by setting
thread priorities
– Low CPU usage can still slow down the system
– With Windows Vista, developers can set
I/O priorities
• Low-priority I/O applications
– SuperFetch
– Search indexing
– Windows Defender
– Disk defrag software
– Startup applications
Using Low-priority I/O
• Call SetThreadPriority with
THREAD_BACKGROUND_MODE_BEGIN
• Call SetProcessPriorityClass with
PROCESS_BACKGROUND_MODE_BEGIN
Diagnostic Tools
Current Tool Limitations
• Repeatability
– Often times, issues are non-deterministic
• Proactivity
– Event logs are a good start but not
end-user friendly
Performance Tuning And Diagnostics
• Lower the cost for diagnosing performance problems
– Easier diagnosis and resolution of performance problems
• Leverages data within the
Circular Kernel Context Logger (CKCL)
– Provides a record of recent system activity
– Automated analysis applied for defined scenarios
– Analysis results written to System Event Log
Performance Diagnostics Architecture
Performance
Analyzer CKCL - ETW Kernel Events
Windows
Diagnostic
Infrastructure
System Event Log
Vista Performance Benefits
• Windows Vista Delivers Consistent Performance
– Improved power transitions
– Consistent responsiveness, even in adverse conditions
• Windows Vista uses innovative technology
to address the biggest user issues
– SuperFetch is a breakthrough in memory management
– ReadyDrive Hybrid Hard Disks provide reliability, battery,
and performance benefits
– ReadyBoost enabled flash improves responsiveness without needing to
add more RAM
– Low priority I/O prevents background applications from affecting user
actions
• Windows Vista has improved diagnostic infrastructure
– Circular Kernel Context Logger (CKCL)
Thank you to our Partners for
their support of TechDays 2007