Performance Tuning of Windows XP on SSD-based Netbooks

Contents

1. Intended audience of this article

This article is for people who use SSD-based netbooks with Windows XP. Users choose SSD-based netbooks because are light-weight (~ 1 kg), energy efficient, cheap and robust to shock and vibration.

Our tool FlashBoot has made easy to install of Windows XP from USB.

If you use Windows XP on netbook, first of all you should install and enable EWF. This article goes further and explains post-EWF-installation steps required to speed up SSD-based netbook with Windows XP.

Recommendations from this article are indepenent from EWF. You may apply them before installing EWF, after installing EWF, or apply them without installing EWF at all.

2. Goal: Less writes on SSD. Motivation

We intend to minimize writes on SSD-backed disk C:. But why?

When small 512-byte sector is written to SSD, entire eraseblock (typically 32x larger) gets erased and rewritten. This is a cause of slowliness of Windows XP with default settings.

Also, SSDs have low limit on erase-and-rewrite cycle count per cell, typically 10000, which is much lower than HDDs. This is why SSD lifetime is reduced much on Windows XP with default settings.

So, our primary goal is to minimize number of writes on SSD.

3. Optimization guide

  1. Install Windows XP on FAT32 filesystem, not NTFS.

    FAT32 has much simpler metadata format compared to NTFS, so Windows makes less disk write requests.


  2. Disable swap file

    Swapping reduces SSD lifetime greatly. Also it does not make sense if EWF is installed for disk C: — swapped out data is still kept in RAM by EWF filter driver.

    My Computer -> Properties -> Advanced -> Performance -> Settings -> Advanced -> Virtual Memory -> Change.

    Performance Tuning of Windows XP - Turning off Swap File (1)

    C: -> No paging file -> Set (repeat for all disks with swap files). Then click OK.

    Performance Tuning of Windows XP - Turning off Swap File (2)

    If you absolutely must have swap file enabled on SSD-based netbook, install SD card to SD slot, make it appear as fixed disk and relocate swap file there (disable it for all other disks). Lifetime of this SD card is expected to be under 2 years of normal use and under 1 year of intensive use.


  3. Increase the Disk Cache Size

    When you read a file from the HDD or SSD, Windows will store a copy of this file in the RAM. When this file will be asked again, Windows will read it from RAM. This way disk access time will be greatly reduced.

    Cache also works for writing. The new data is not instantly saved to disk, it's hold in RAM for some time. The benefit of this appoarch is an additional performance on files repeatedly rewritten in place.

    We will increase the size of the RAM-based disk cache to improve disk performance.

    • Run regedit (Start, Run ..., type regedit).
    • Go to the following key: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Memory Management
    • Create or edit the DWORD value by assigning LargeSystemCache value 1 (0 is the default).
    • Exit regedit and reboot the netbook.

  4. Disable System Restore

    Theoretically, System Restore feature is to make sure that software installations, drivers, and other updates can be rolled back.

    In practice, it never works that way and just wasting disk space and I/O.

    My Computer -> Properties -> System Restore

    Performance Tuning of Windows XP - Disabling System Restore (1)

    Select "Turn off System Restore" checkbox and click Apply. Confirm turnoff in dialog.

    Performance Tuning of Windows XP - Disabling System Restore (2)

  5. Disable Updating of File Last Access Time

    Each time you read any file, Windows updates its attributes (last access time in particular). Such updates generate a lot of useless disk I/O. To disable this feature:

    • Run command line (Start, Run ..., type cmd).
    • Type fsutil behavior set disablelastaccess 1 and press Enter.
    Performance Tuning of Windows XP - Disabling Updating of File Last Access Time

  6. Disable Windows Prefetch

    Windows Prefetch is indended to speed up loading of applications. It remembers which DLLs and data files each application tend to read each time on startup and makes them sequental on disk in its Windows Prefetcher Cache.

    So on HDDs they load faster. On SSD with fast random seek time there's no speed difference between reading files from Windows Prefetcher Cache and from actual location. On SSD-based netbooks, Windows Prefetcher Cache is just waste of disk space and SSD lifetime.

    To disable Windows Prefetch:

    • Run regedit (Start, Run ..., type regedit).
    • Go to the following key: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Memory Management \ PrefetchParameters
    • Create or edit the DWORD value by assigning EnablePrefetcher value 0 (1 is the default).
    • Exit regedit and reboot the netbook.
    • Delete C:\Windows\Prefetch folder.

  7. Disable disk defragmentation and background moving of frequently accessed files to the start of disk

    Because random read time on SSD is the same as linear read time, defragmentation is unnecessary for SSD. Because read speed at the start of SSD does not differ from read speed at then end of SSD, moving frequently used files to the start of disk in unnecessary for SSD.

    Both should be disabled to avoid unnecessary I/O and to extend SSD lifetime.

    To do this:

    • Run regedit (Start, Run ..., type regedit).
    • Go to the following key: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Dfrg \ BootOptimizeFunction
    • Create or edit the STRING value by assigning Enable value "N" ("Y" is the default).
    • Go to the following key: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ OptimalLayout
    • Create or edit the DWORD value by assigning EnableAutoLayout value 0 (1 is the default).
    • Exit regedit and reboot the netbook.