Storage talk: Understanding your solid-state drive
CNET editor Dong Ngo explains how SSDs work and some ways to get the longest life span out of them.
Editor's note: This post was updated on February 20, 2013 to reflect the current state of SSDs on the market.
If your computer still runs on a hard drive, it's time to move to a solid-state drive (SSD). (, if you need help). It will be the single biggest upgrade that will hugely improve the system's performance, even better than getting a new computer that also runs on a hard drive.
But is there any place that SSDs' performance falls short in comparison with hard drives? Now that SSDs' prices have been getting progressively lower in the past few years, there's just one thing left: the write endurance rating. In this post, I'll talk about this shortcoming and how to mitigate it.
Finite program/erase cycles
Unlike regular hard drives, all NAND flash-based solid-state drives, which are the majority of SSDs on the market, will permit a finite amount of writing. In other words, an SSD can be written on a limited number of times before it becomes unreliable. Before you can rewrite on a part of the drive, you'll need to first erase information already stored on that part. This is why the write endurance rating is also known as "P/E cycles," or program/erase cycles.
It would be impossible to explain P/E cycles in detail without using technical jargon, but basically, flash cells wear out a little bit each time you write to them. In a way, this is similar to writing on a piece of paper using a pencil and an eraser. You can only erase the pigment so many times before the piece of paper becomes worn out or even torn and can't be written on anymore.
Now, before you let out a "D'oh!" and return your beloved, recently purchased SSD, be aware that the number of potential P/E cycles for an SSD is exponentially larger than that of paper. In addition, modern SSDs have technologies that increase the efficiency of writing and reduce wear on its storage cells. Among these technologies, the most important are the "wear-leveling" algorithms that effectively make sure that all the drive's memory chips are used up, cell by cell, before the first cell can be written on again. This also means that SSDs of larger capacities generally have longer life spans than do smaller ones.
So how long is long? To help users estimate how long an SSD will last, SSD vendors such as OCZ have come up with formula: a drive's life span equals its capacity multiplied by its write endurance rating, divided by the average daily writes. For example, the
Most of us actually write much less than 50GB of data -- which is about two Blu-ray discs' worth -- on our computer's host drive on a daily basis, and many days we don't write anything at all. Note that watching movies, reading PDF files, or viewing photos doesn't count as writing; that's reading, which has no effect on an SSD's life expectancy. Activities like copying music from another drive, downloading files, or backing up your phone do require writing to the drive.
Getting the most from your SSD
To maximize the life span of an SSD, apart from making an effort to reduce unnecessary copying of files, downloading of data onto the drive, and so on, you should note that there are a few operating system settings, as well as common tasks designed for regular hard drives, that shouldn't be used with SSDs. For Windows computers, these are described below.
(Note that these are just precautions; if you use an SSD the way you would a hard drive, chances are it will still last longer than a regular hard drive would.)
Benchmarking: Most of us want to find out just how fast our new SSD is, and when we have one we just can't wait to test it out by copying files from one place to another or using disk-benchmarking software. While this is fun, and the information is useful to know, it wastes the drive's P/E cycles.
Hibernation: This is a feature found in most operating systems in which the contents of system memory (where running programs and information being processed reside) are written to the computer's internal storage device before the computer is powered off. When the computer is restarted, the system reloads the saved content back into the system memory, and hence restores the computer to the state it was in before it was turned off. Once the loading is completed, the saved content will be deleted from storage.
As you can imagine, depending on the amount of system memory, the hibernation process can use gigabytes of storage space, which translates into a large amount of writing on the internal storage. More specifically, a computer that has 4GB of RAM requires some 3GB of storage space for the create a hibernation file. And when an SSD is used, that's not a good thing. With that in mind when using a computer with an SSD, try to avoid using hibernation. Sometimes the computer goes into hibernation by itself, but you can avoid this by completely turning off the hibernation function. Here's how:
- On the Start Menu, look for "Command Prompt," and right-click it.
- Choose "Run as administrator," and answer "yes" to the User Account Control security prompt. (This is called running "elevated Command Prompt." Note the procedure, as you will use it again below.)
- When the Command Prompt window appears, type in powercfg -h off and then press Enter.
That's it -- your computer will never go into hibernation mode again. To turn this feature back on, repeat this process and type powercfg -h on.
A computer that's equipped with an SSD generally boots really quickly, so you can always just save your work and turn it off. Avoiding hibernation also helps the system to run well and free of errors.
AHCI and TRIM commands: AHCI, which stands for "advanced host controller interface," allows the operating system to access the storage faster and use advanced functions. One of these functions is the TRIM command, which allows a supported operating system, such as Windows 7, to actively inform an SSD which blocks of data are no longer considered to be in use and can be wiped internally. This helps the drive work more efficiently and leads to faster performance.
Generally, both AHCI and TRIM are enabled by default. You can check and change the former in the computer's BIOS setting. It varies depending on your computer, but with most systems you can enter the BIOS by tapping the Delete or F2 key as the computer boots up. Here, look for the storage section and change the value of "Configure SATA as" to "AHCI" (if it's not already AHCI). It's better to do this before you install the operating system, as otherwise you'll need to install the storage drivers first before changing the value. Note that if you use two SSDs in a RAID configuration, then the RAID value should be selected.
For the TRIM command, you can determine if it's running by running elevated Command Prompt as described above, then executing this command: fsutil behavior query DisableDeleteNotify. If the command returns "DisableDeleteNotify = 0", then TRIM is running. If not, you can turn it on by executing fsutil behavior set disabledeletenotify 0.
Defragmentation: On hard drives, information stored on the outer part of the platter can generally be accessed faster than information stored on the inner part (the part close to the middle of the platter). This is because physically, like a wheel, the platter moves faster farther away from the spindle. For this reason, defragmentation, a process that reorganizes data by moving it toward the outer part of the platter and putting files in contiguous regions, helps improve a hard drive's performance.
On an SSD, however, as there are no moving parts, information stored on the drive is equally accessible regardless of its location on the drive. This means defragmentation is unnecessary. And as defragmenting basically means moving data from one place to another, it uses up the drive's P/E cycles.
Windows 7 (and later) supports SSDs natively and automatically excludes them from the list of drives that are defragmented on a schedule. To be sure, or on earlier versions of Windows, you can turn off the scheduled defragmentation by running a program called Disk Defragmenter (it can be found in the Start Menu) and clicking on Configure Schedule. The rest is self-explanatory. And, of course, refrain from manually running defragmentation on an SSD.
Superfetch: This is a technology, first introduced in Windows Vista, that allows Windows to more efficiently manage system memory and pre-load frequently access data/application into the memory for faster performance. However, this process require Superfetch's cache to be written on the drive and updated regularly, which increases the amount of writing to the drive.
If your computer uses a hard drive, Superfetch is useful. For an SSD, however, it's not necessary and only wastes the drive's P/E cycles.
To disable Superfetch run the Command Prompt and execute the services.msc command. This will open the Services utility. Next, on the list, look for Superfetch, then double-click it and disable it.
ReadyBoost: First introduced with Windows Vista, ReadyBoost works by using flash memory, a USB flash drive, an SD card, Compact-flash or any kind of portable flash mass storage system as a cache to help a computer boot and launch applications faster. Since SSDs are much faster than any of the flash-based portable drives, ReadyBoost is not necessary and might actually slow down the system. For this reason, when using an SSD as the main drive, Windows 7 automatically disables ReadyBoost. You need to turn it off when using Vista, however.
To do this, open Computer, right-click on the removable disk, then click on Properties on the popup menu. Now, pick the ReadyBoost tab and disable it.
Indexing service: The indexing service is designed to speed up a search for files on the hard drive by cataloging their contents on a regular basis. This increases the amount of writing to the drive, and since SSDs are very fast, indexing is not really necessary. However, if you're the type who does a lot of searching for information on your computer, it's recommended that you leave the indexing service running.
To disable indexing for all drives on a computer, similar to the procedure for disabling Superfetch, open the Services utility. Look for Windows Seach service and disable it.
If your computer has more than one drive and you just want to disable indexing on the SSD, follow these steps:
- Open Computer.
- Right click on the SSD drive (most likely the C: drive) and select Properties.
- Go to the General tab (the first tab).
- Uncheck the box that reads "Allow files on this drive to have contents indexed in addition to file properties," and click Apply.
- After that, choose to apply changes to the entire drive, including subfolders and files.
Note: To quickly tune an operating system for an SSD with multiple settings, you can use a software utility, such as the free Samsung Magician 3.2. Though designed to work with Samsung's SSDs, the software's tuning function works with all SSDs.
Page File (aka virtual memory): In an operating system such as Windows 7, the Page File could be seen as a system memory wannabe. In a nutshell, this is the amount of storage space on an internal storage device that the operating system reserves for use when an application requires more physical memory (RAM) than the computer is equipped with.
The Page File's size tends to change dynamically, and this means lots of writing to the drive which, again, is not good for an SSD. So if you use a computer with 8GB of memory or more, and you generally don't run lots of things at a time, it might be a good idea to turn off Page File completely, or at least reduce it to a fixed size of around 1GB. For a computer with 4GB of memory, the Page File should be set to be no larger than 2GB. If you run a desktop that has a hard drive as a secondary drive, it's best to move the Page File to the hard drive and not have it on the SSD.
Note that turning off Page File might lead to application error when the computer runs out of physical memory during a heavy multitasking section. For such computers, you need to turn Page File on or reduce the workload. A good rule of thumb is, if your computer often uses 75 percent or more of its physical memory, it's time to think of using the Page File. To find out if you have to turn on Page File or not, check the level of memory usage during your heaviest workload. To do this, run Command Prompt and execute taskmgr command. This will run the Task Manager application which, among many things, shows the percentage of memory being used, at the bottom, or in the case of Windows 8, on the Performance tab.
To change the setting of Windows' Page File, follow these steps: Run elevated Command Prompt and execute control sysdm.cpl command. Now as the System Properties window appears, pick the "Advanced" tab and click on the first "Settings..." button. The Performance Options window will appear. Now click on its "Advanced" tab, then click on the "Change" button. The rest is self-explanatory.
There you go. After all that, you can rest assured that you've done nearly all that can be done to make your SSD work at its best and last longer. Again, note that these are just precautions; if you just use an SSD the way you do a hard drive, chances are it will still last for a very long time. The truth is that most new operating systems (Windows 7 or later, Mac OS 10.7 or newer) all come built-in with SSD-friendly settings that reduce unnecessary writing. So for most of us, there's not much to worry about other than how to put the super-fast speed to use.
If you have more questions about SSDs, send them to me via Facebook, Twitter, Google+ or just post them in the comments section below. I'll try to answer them individually or put them all in a new post.