Microsoft have done a lot of work on win7 to tune it for SSDs, so much so that in terms of the OS itself, there’s little to no need to tweak anything. However if you’re considering a purchase, there are some things you ought to know, some things to consider, and some things you can and can’t do with SSDs, which is what we cover off in this article, along with providing some good advice on maintaining your solid state drives in peak performance.

In summary, as far as the OS is concerned, there is little to nothing that needs be done for a single SSD, but the same can’t be said for your applications or for SSDs configured in a RAID set. While the OS is optimised for SSDs, applications aren’t, and with very few exceptions, RAID controllers don’t support TRIM, which marks blocks that can be erased in the background by the SSD.

If you’re looking for step-by-step instructions, forget it. If you can’t understand the high-level advice in the article sufficiently to work out what steps you must take for yourself then you shouldn’t be reading this page at all.

Caveat

Some of the information in this article relates exclusively to SSDs with SandForce controllers. Some information may be inappropriate for other, older controllers, such as Indilinx. If your SSD controller is not a SandForce controller then you must verify that Tip #’s 1, 3 and 6 are appropriate for your SSD. Some information in Tip #5 may also not apply to non-SandForce SSDs.

Speed

A single, quality Solid State Drive (SSD) will blow a RAID10 set made up of 10,000RPM Western-Digital Velociraptors or Samsung F3’s into the weeds. It’s that simple. Put a pair of quality SSDs in RAID0 on a SATA II controller and the only suitable word in the English language to describe the speed is SMOKIN’!

With two SSDs in RAID0 configuration you can expect to get read/write speeds in excess of the theoretical maximum throughput of a single SATA II interface, which is 3Gb/s (Gigabits per second) per second or around 375MB (Megabytes)/s. The snapshot below is of two 60GB OCZ VERTEX2 drives in RAID0, with caching turned off, i.e. data is written directly to the drive:

image

Click to enlarge

Reliability

Most consumer-grade SSDs have a lifespan of about 10,000 writes per cell, that is, the cells begin to fail after about 10,000 writes each. 10,000 writes doesn’t seem like much, but with a drive that has a write-levelling or wear-levelling controller, the writes are spread across the disk to balance the write count in each cell. For a 60GB SSD you would have have to write 60 Gigabytes of data a day, every day for 10,000 days, which is about 27 years and far in excess of the lifespan of a PC. Little wonder then that good quality SSDs come with a 3yr warranty.

Windows 7

As mentioned in the introduction, Microsoft have optimised Windows 7 for SSDs. Apart from reducing unnecessary disk writes and flushes in Windows 7, the OS’s partitioning tools always check for the presence of an SSD to ensure that partitions are created on the right boundaries to optimise performance. Also, if the OS is installed on an SSD:

  • Win7 will not use flash or pen drives for ReadyBoost caching.
    • There is no performance advantage to be gained from ReadyBoost if you’re running Windows 7 from an SSD because your SSD can be 10, 20 or 100 times faster than a typical flash drive.
  • Automatic disk defragmentation is turned off for SSDs.
    • Fragmentation is a problem for mechanical disks. Fragmentation means that mechanical read/write heads must move to disparate places on the disk to read or write data. Unnecessary head movement impacts disk performance because hard disks typically have response times of around 10 to 15 milliseconds, with faster consumer-standard hard disks turning in at about 7ms. There is no discernible performance gain from defragmenting an SSD because an SSD has response times measured in microseconds, or very small fractions of a single millisecond.
    • Defragmenting an SSD will degrade its performance and reduce its lifespan.
    • As a side note, automatic defragmentation of the system disk is turned off by the OS if it is installed on any hard disk that has a random read performance above 8 megabytes per second.
  • Superfetch is disabled.
    • Superfetch monitors your activity and moves different files to the start of the disk at different times during the day. As with defragmentation, Superfetch will degrade your SSD’s performance and reduce its lifespan.
    • On hard disks, the fastest data transfer rate is always obtained on the outer edges of the disk platter, which is why Superfetch moves data to that position. On SSD’s there is no platter so there is no advantage to moving data to the start of an SSD.
  • Windows 7′s NTFS will issue TRIM commands to SSD controllers that support it. TRIM allows the SSD to mark whole blocks that are no longer needed, such as when files are moved or deleted, for later erasing in the background when the drive is idle.
    • SSD’s suffer degradation when writing to non-empty blocks (typically a block is 128 * 4k pages or 512kB):
      • SSD’s can only erase blocks; they cannot erase pages, and pages can only be overwritten if the page is empty to start with. It is here that SSD’s can take a big hit in performance because the full 512kB block has to be loaded, erased and rewritten to change one byte of information in a single page.

The points above all imply that to maintain peak performance of your SSD you will need to minimise deleting or overwriting data. With TRIM support on a single SSD the problem isn’t so bad because the SSD will optimise itself in the background, but the story is completely different for SSDs in RAID configuration because, with the exception of Intel’s ICH10R (ICH10R, not ICH10) and Intel’s advanced software, RAID does not support TRIM. All is not lost for RAID though. Good quality SSDs also perform garbage collection in the background, but in a RAID set up garbage collection is all you have to rely on if you don’t want to make changes to your system, such as buying a new processor and motherboard just to get support for ICH10R and above.

The major culprits in degrading your SSD are going to be any applications that:

  • do extensive logging (e.g. antivirus software and web servers),
  • manage their own cache (e.g. web servers again, SQL Server databases, web browsers and high-end graphics software such as Adobe CS, Bryce and Pixologic’s ZBrush)
  • have a large temporary file requirement (e.g. WinZip, WinRAR and application installers)

SSD Performance Tip #1

Secure-erase a used SSD before reinstalling the OS.

Most SSDs support an extended ATA secure erase command. On a hard disk, the controller will physically wipe all the data so that it is unrecoverable; if the disk is encrypted using Full Disk Encryption (FDE is an ATA standard) then the encryption key for the disk is changed. In SSDs, the secure erase command will, depending on the drive, either mark all the blocks as free (quick secure erase) or fill the blocks with the hexadecimal value FF (full secure erase).

If you’re paranoid about the idea of a quick secure erase leaving your data susceptible to being revealed by the FBI’s forensic division, don’t be. The RAM in an SSD is split into 128 pages, 2,000 blocks per Gigabyte, in 10 planes or more, and from one to four or more dies inside a single flash RAM chip. Once the drive’s bitmap is erased, which is what a quick secure erase actually does, it is impossible to reconstruct the data.

Some SSDs have a jumper on the back that will secure erase the drive if the pins are shorted; check your SSD user manual. Using a jumper has a few drawbacks. If you’re over 40 you have almost no hope of seeing the jumper pins because they are too small for your age-weakened eyes. If you’re over 50 then your age-related delerium tremens will prevent you from placing the jumper over the pins, if you could see them in the first place.

Important Points

  • The best method to secure erase your SSD is to use HDDErase v4 or later, which can be downloaded here, or you can download Hiren’s Boot CD here. Hiren’s 11 series of boot disks contain HDDErase v4 and will make the job much easier.
  • If your SSD is on an ACHI or RAID controller you must set the controller to native IDE mode in the machine’s BIOS before running HDDErase.
  • Some motherboards have 8 or more SATA ports on two or more controllers. Gigabyte boards are typical examples. You must make sure that your SATA SSD is on one of the first four ATA ports otherwise HDDErase will not see the SSD at all.
    • As counter-intuitive as it is, the first ATA port on a SATA controller is often the last SATA port.
    • If you start HDDErase and it can’t see your SSD then either your controller is not set to native ATA or the SATA port the drive is on is using an ATA port number above 4. Check the native ATA setting in the BIOS. If it is set correctly, move the drive to a different port and try again.
  • If HDDErase reports that the SSD is in a locked state, simply power down the machine and put the SSD on a different port.
  • If the drive is part of a RAID set there is no need to delete the set before using HDDErase.

SSD Performance Tip #2

Create partitions with Windows or the Windows installer.

If you’re in the habit of creating partitions with a 3rd party application then you ought to check if it correctly aligns to a 4k boundary.

Windows 7′s Disk Management tool and the Windows installer both create correctly aligned partitions on SSDs. Misaligned partitions increase write overhead and can cause SSDs to stutter. Since SSDs can only erase a full 512k block at a time, if the partition is not correctly aligned to a 4096 byte (4k) boundary then a single write operation may cause two blocks to be loaded, erased and rewritten rather than one. The performance difference can be dramatic, reportedly up to 300% in some cases.

You can check if your partitions are aligned to the 4k boundary by using the System Information tool (msinfo32.exe):

image

Click to enlarge

The partition starting offset must be directly divisible by 4096, i.e. the result must be an integer, no decimal places.

SSD Performance Tip #3

Over-provision the drive.

Manufacturers put additional flash RAM over and above that of the reported drive capacity into SSDs. To put it another way, over-provisioning means the SSD has more RAM than it lets on. A typical 60GB SSD may have 65 to 70GB of flash memory, and an 80GB SSD may have an additional 20% or 16GB of RAM tucked away.

Over-provisioning an SSD is analogous to short-stroking a HDD. Short stroking simply means creating a single partition that is smaller than the disk will actually support, usually a significantly smaller partition. Short stroking will prevent the need for the drive heads to navigate to the inside of the platter, significantly improving performance. A 1TB drive with four platters will perform significantly better if only the first 250-300GB are allocated.

The short stroking principle doesn’t apply to SSDs because they don’t have platters. SSDs use unallocated RAM as a temporary dumping ground for long streams of incoming data so as to avoid performance degradation. The spare area is also used to replace allocated pages that have failed flash cells in them.

Manufacturers over-provision SSDs by as much as 20% but some manufacturers try to squeeze as much capacity out of their drives as is possible for purely marketing reasons. Drives that have been squeezed of spare RAM are sold as “extended” models, which really means you’ve sacrificed the long-term welfare of your data for a few measly GB of extra space.

To over-provision a single SSD simply leave 10-20% of the drive free when creating partitions.

If you plan to put two SSDs in RAID0 configuration you can use your BIOS RAID configuration tool to create a RAID set that is 10-20% smaller than the maximum array capacity. Using RAID BIOS to limit the partition size is much better than simply creating a partition that is smaller than the array capacity because you’ll be far less tempted to steal the unallocated area back if you start running out of space later.

Of course, there are techno-nitwits on “Internet support forums” who declare over-provisioning to be unworthy of the expense. Their argument goes something like, “BUT THE COST PER GB GOES UP!” Well, yes, it does, but if you’re worried about cost per GB, why buy an SSD in the first place?

SSD Performance Tip #4

Install a pair of standard hard disks in RAID0.

Having two HDDs in RAID0 alongside a single SSD or two SSDs in RAID0 will provide you with two major benefits. First, you will have a place to offload a lot of temporary storage, logs and cache files from your SSD. Second, you’ll have a place to run Windows 7 inside a virtual machine (VM), which can be used for testing and analysing applications before you install them to your SSD.

A VM is highly recommended if you have an SSD. Applications like Pixologic ZBrush will create Gigabytes of cache on your SSD, even if you have 8GB of RAM installed and 12GB of disk set aside for a pagefile. If you install the application in a VM first you can explore its settings to find out if you can redirect its caches and temporary storage. In addition, you can save your SSD the bother of garbage collecting or TRIM’ing the space left behind when you uninstall the application after deciding it’s too ugly or unsuitable for you.

You can get Microsoft’s Virtual PC 2007 free here, or you can get Oracle’s VirtualBox, also free, here. If you need an opinion on what one to choose, kadaitcha.cx uses VirtualBox because it’s far more configurable, and because it’s maintained, updates are released regularly. Microsoft have released a VM engine specifically for Windows 7, and in true Microsoft fashion, they’ve not just given it a confusing name so you can hardly tell if you’re downloading the right software, they’ve given it two confusing names. It’s called “Windows Virtual PC and Windows XP Mode”. Really, stay clear of it. Microsoft have killed a really good product by removing the normal VM UI and palming “Windows Virtual PC and Windows XP Mode” off as a compatibility solution for XP software running on win7. Stiff cheese if you want to run Linux… but then, perhaps that’s exactly why Microsoft mangled the perfectly good Virtual PC product in the first place.

To move Internet Explorer’s cache, on the Tools menu select Internet Options. In the Browsing history group on the General tab, click Settings. Finally, click Move folder.

To move Firefox’s cache, enter about:config in the address bar and add a new string named browser.cache.disk.parent_directory. Set the value of the string to the path where you want firefox to store its cache.

To move Windows Live Mail’s cache, in Mail Options select the Advanced tab. Click on Maintenance. In the Maintenance window, click on Store folder and choose where WLM will store its data. If you move the storage folder for your email application to another drive then you need to make sure it’s backed up. kadaitcha.cx recommends and uses Cobian for this purpose.

To move Google Chrome’s cache it’s best to create a junction from [X]:\Users\<usrname>\AppData\Local\Google\Chrome\”User Data” to wherever you want to put the cache before installing Chrome; it’s the best way because doing it after Chrome is installed means messing about with hidden folders and navigating into mostly uncharted territory. A short series of command line instructions is all that’s needed, for example:

mkdir C:\Users\<usrname>\AppData\Local\Google\
mkdir C:\Users\<usrname>\AppData\Local\Google\Chrome\
mklink C:\Users\<usrname>\AppData\Local\Google\Chrome\”User Data” D:\Caches\Chrome\”User Data” /J

You can also move your Downloads folder. There are two ways you can achieve this:

  • Simply copy your Downloads folder to where you want it and delete the original in Windows Explorer, next
    • Run a command prompt in Administrator mode, navigate to your home directory where the Downloads folder used to be and and create a junction using mklink <srcdir> <destpath> /J, for example:
      • mklink Downloads D:\Caches\Downloads /J
        • The trick is not to forget the /J parameter
  • Point your browser or download manager to a different folder on another drive.

[X:]\Windows\Temp can be moved if you do the move in safe mode with command prompt.

You can use junctions to move just about any temporary storage location off your SSD, however it is recommended that you do not move [X]:\Users\<usrname>\AppData\Local\Temp, which is a bit of a shame, really, because …\AppData\Local\Temp is probably the one place that gets used more than any other for temporary storage, but if you move it you can expect poorly-written applications to not work at all, and that includes the Windows Experience Index tool in the Control Panel’s System applet.

…\AppData\Local\Temp can get quite big, very quickly, like this 850MB+ monster here:

image

Click to enlarge

To deal with temporary files in places that shouldn’t be moved, kadaitcha.cx uses Piriform’s free CCleaner. The only thing you must remember is to not use CCleaner’s secure file deletion. Use the simple delete method only. Secure deletion writes random garbage to the file. Writing random garbage to SSDs is a no-no because doing so will, without doubt, degrade your SSD’s performance, which brings us to the next tip… but first, in case you weren’t already aware, anything you install to a RAID0 array (either an SSD or HDD RAID) should be considered as unimportant and unwanted unless you have a proper backup regime. If one drive in a RAID0 set fails then you’ve lost the lot. If you need a recommendation on decent, reliable backup software, for your own sake, don’t go near Acronis TrueImage; it’s totally bug-riddled crapware. If you need evidence for that opinion, visit the Acronis support forums and see for yourself. Paragon Hard Disk Manager works, Acronis doesn’t.

SSD Performance Tip #5

Don’t continually benchmark your SSD.

It’s not nice to laugh at the misfortune of others but sometimes it just can’t be helped. kadaitcha.cx read a post on a supposed “support” forum where someone was complaining that they’d benchmarked their SSD five times a day for more than a week with HD Tune Pro and the disk had been getting progressively slower and slower. Of course, he was witless to the fact that HD Tune Pro had been writing megabyte after megabyte of random garbage across his shiny new SSD and had seriously degraded its performance. If that wasn’t funny, the techno-nitwits telling him the drive was broken and should be sent back for replacement certainly was.

HD Tune Pro should be avoided at all costs. While the latest version claims to have “improved support for SSDs”, it was still written for mechanical disks. Apart from degrading your disk with random rubbish, running HD Tune Pro on an SSD will result in a performance chart that’s certain to give you a heart attack. The chart tracks individual random reads, and with an SSD there will be dramatic peaks and troughs that will cause you to believe things that are simply not true, “MY SSD IS BORKED!”, for example. The one thing that counts with SSD performance are average values. You aren’t likely to be interested in your SSD’s average throughput if there is a chart showing you the results of each random read with massive spikes going up and down all over the place. No. You’re going to mistakenly believe your SSD is knackered.

If you must benchmark your drive, do it only once or twice, use hiyohiyo’s free CrystalDiskMark, and forget to benchmark the drive ever again. You can get CrystalDiskMark here. Make sure you set the test data to fill with hexadecimal FF, or 1 Fill.

SNAGHTML4ef9d9

Click to enlarge

SSDs don’t represent binary 1′s and 0′s at the drive level in the same way as HDDs. In an SSD, 1 represents “empty”. Filling a SSD with 1′s will improve its performance. Filling a SSD with 0′s will degrade it, and again, we have a lead-in to the next tip…

SSD Performance Tip #6

Occasionally simulate TRIM.

For occasionally, read ‘very occasionally’, or even ‘in rare instances’. This tip applies only to SSDs in RAID configuration on RAID controllers that do not support TRIM.

Secure-erasing your SSD too frequently and reinstalling the OS and your applications, or secure-erasing then restoring from a backup to deal with performance issues are sure ways to kill the SSD quicker. Likewise constantly filling it with 1′s will hasten its demise. If you follow Tip #5 and only benchmark your SSD once or twice (to get bragging rights) then the only thing you have to tell you that your drive is under-performing are your perceptions.

Given the general speed of today’s technology you will need about a 20% change in performance before you notice a difference, if you notice it at all. Assuming you do notice a performance drop you can avoid a secure erase and rebuild by first turning off the pagefile (and hibernation if you use it), running CCleaner (Tip #4) then running “AS Cleaner” with an FF fill:

SNAGHTML7dc4c7

Click to enlarge

Turning off the pagefile and hibernation, then running CCleaner followed by a run of AS Cleaner simulates the TRIM operation. AS Cleaner goes by a number of different names and is difficult to find using a search engine, which makes things tough if you can’t get hold of it from a trusted source. kadaitcha.cx got its copy from here.

You can delete hiberfil.sys by using this command:

powercfg.exe -h off

Again, you don’t want to go executing this tip willy nilly. Only perform this tip if you are certain of performance degradation. And don’t forget to turn the pagefile back on. If you need to turn hibernation back on, use this command:

powercfg.exe -h on

SSD Performance Tip #7

Never defrag your SSD.

No more need be said.

SSD Performance Tip #8

Check your anti-virus software.

AVG constantly creates untold numbers of log files. kadaitcha.cx tossed it for that reason only and settled on the free avast! instead. The beauty of avast! isn’t just in its minimal logging. avast! has customisable shield controls that allow you to turn off file monitoring, which is a significant drain on performance when you have to copy or move lots of files. AV software will generally insert itself into the Windows copy routines, which means every file you copy or move is passed, in its entirety, through the AV. With avast! you can disable file monitoring permanently, for 10 minutes or for an hour. Turning off file monitoring doesn’t affect web AV monitoring and you can always check dubious downloads by using avast!’s shell integration anyway.

As for opinions on other AV software, Norton isn’t worth stealing, let alone buying, and the free Avira will nag you to death every time it updates.

SSD Performance Tip #9

Disable unnecessary disk writes.

Whenever Windows 7 reads a file, it stamps the file with the date and time it was accessed. This feature has its place but is not required for normal use unless you rely on the date of last access for backup purposes, which is a rare requirement for most backups. Putting a timestamp on a file that has just been read means that a write access has to be made to disk, so almost every time a disk read is executed, a corresponding disk write is also executed.

To disable the last access timestamp behaviour, start a command prompt, enter the following command then reboot:

FSUTIL behavior set disablelastaccess 1

To turn timestamps back on, repeat the command but replace 1 with 0:

FSUTIL behavior set disablelastaccess 0

If you’re not into messing with your OS’ file system, and you’re 100% certain you don’t use any 16-bit applications that rely on DOS 8.3 filenames, then you can disable DOS 8.3 filename creation. This change will reduce the writes to your SSD and greatly improve Windows Explorer’s directory enumeration.

At the command prompt, enter the following then reboot:

fsutil behavior set disable8dot3 1

The only time in the last decade that kadaitcha.cx has ever needed 8.3 DOS-style file names was while trying to delete a Linux file that was copied to an NTFS partition. The file simply refused to be deleted, and even then trying to delete the file using its 8.3 name failed.

SSD Performance Tip #10

Don’t move the pagefile.

Some people have the tendency to trick themselves by believing unsubstantiated rot they either dreamt up themselves or read on some “Internet support forum” where the self-appointed techno-gods are pimply-faced 13yr olds who wouldn’t know one end of their a… You get the point…

Moving the pagefile off an SSD is not only counter-productive, it is not warranted. As for counter-productive, the pagefile serves its purpose best when it is located on the fastest possible disk available, which would mean the SSD. And as for not warranted, 80% of requests to a pagefile are reads, not writes. If that were not true there would actually be no reason for a pagefile at all.

SSD Performance Tip #11

Fix the size of the pagefile.

By default, a system managed pagefile will grow and shrink as needed. By fixing the pagefile to 1.5 times available RAM you give the disk controller more time to worry about wear-levelling, and no time is needed to deal with pre-erasing swathes of RAM pages as the pagefile grows. The controller will simply allocate and deallocate memory blocks as required by its levelling algorithms to keep the drive in shape.

SSD Performance Tip #12

Disable Windows Search.

With the Search Service turned off, Windows Exploder’s search is woefully slow on standard HDDs, and with it turned on for an SSD there is no guarantee you’ll find what you’re looking for anyway. Microsoft’s indexed search either returns so many irrelevant entries for you to pore over or it simply cannot find what want, despite you knowing full well that it exists. That’s a lot of trouble to go to to create megabyte upon megabyte of index files for little to absolute zero benefit.

Agent Ransack by David Vest of Mythicsoft is highly recommended in place of Windows Search. You can read the kadaitcha.cx review of Agent Ransack here or you you can go straight to Mythicsoft and download it by clicking here.

If you really must have Windows Search then you can use the Control Panel’s Indexing Options to move the index cache off your SSD and onto a different disk.

SSD Performance Tip #13

Disable Write Caching.

For some reason, Windows 7 may choose to turn on write caching for your SSD, which is a completely pointless thing to do. Check that write caching is disabled on your SSD and disable it if it isn’t. This one tip alone might score you a 10% performance boost. If you need to prove the boost then allow yourself two more runs of the CrystalDiskMark benchmarking application; one run before you turn off caching and one run after. And don’t forget to forget about benchmarking the disk ever again when you’re done.

SSD Performance Tip #14

Let it idle.

Once or twice a week logoff Windows 7 instead of shutting down. This will give the SSD the idle time it needs to do its garbage collection and pre-erase blocks that are no longer needed. If you have system level processes running all the time and the drive can’t get any peace, restart the machine, go into the BIOS, turn your display off and leave the machine in that state for the night.

2 Responses to “Solid State Drives (SSD) and Windows 7”

Leave a Reply

Please leave these two fields as-is: