The SSD Relapse: Understanding and Choosing the Best SSD
by Anand Lal Shimpi on August 30, 2009 12:00 AM EST- Posted in
- Storage
A Wear Leveling Refresher: How Long Will My SSD Last?
As if everything I’ve talked about thus far wasn’t enough to deal with, there’s one more major issue that directly impacts the performance of these drives: wear leveling.
Each MLC NAND cell can be erased ~10,000 times before it stops reliably holding charge. You can switch to SLC flash and up that figure to 100,000, but your cost just went up 2x. For these drives to succeed in the consumer space and do it quickly, it must be using MLC flash.
SLC (left) vs. MLC (right) flash
Ten thousand erase/write cycles isn’t much, yet SSD makers are guaranteeing their drives for anywhere from 1 - 10 years. On top of that, SSD makers across the board are calling their drives more reliable than conventional hard drives.
The only way any of this is possible is by some clever algorithms and banking on the fact that desktop users don’t do a whole lot of writing to their drives.
Think about your primary hard drive. How often do you fill it to capacity, erase and start over again? Intel estimates that even if you wrote 20GB of data to your drive per day, its X25-M would be able to last you at least 5 years. Realistically, that’s a value far higher than you’ll use consistently.
My personal desktop saw about 100GB worth of writes (whether from the OS or elsewhere) to my SSD and my data drive over the past 14 days. That’s a bit over 7GB per day of writes. Let’s do some basic math:
My SSD | |
NAND Flash Capacity | 256 GB |
Formatted Capacity in the OS | 238.15 GB |
Available Space After OS and Apps | 185.55 GB |
Spare Area | 17.85 GB |
If I never install another application and just go about my business, my drive has 203.4GB of space to spread out those 7GB of writes per day. That means in roughly 29 days my SSD, if it wear levels perfectly, I will have written to every single available flash block on my drive. Tack on another 7 days if the drive is smart enough to move my static data around to wear level even more properly. So we’re at approximately 36 days before I exhaust one out of my ~10,000 write cycles. Multiply that out and it would take 360,000 days of using my machine the way I have been for the past two weeks for all of my NAND to wear out; once again, assuming perfect wear leveling. That’s 986 years. Your NAND flash cells will actually lose their charge well before that time comes, in about 10 years.
This assumes a perfectly wear leveled drive, but as you can already guess - that’s not exactly possible.
Write amplification ensures that while my OS may be writing 7GB per day to my drive, the drive itself is writing more than 7GB to its flash. Remember, writing to a full block will require a read-modify-write. Worst case scenario, I go to write 4KB and my SSD controller has to read 512KB, modify 4KB, write 512KB and erase a whole block. While I should’ve only taken up one write cycle for 2048 MLC NAND flash cells, I will have instead knocked off a single write cycle for 262,144 cells.
You can optimize strictly for wear leveling, but that comes at the expense of performance.
295 Comments
View All Comments
mtoma - Monday, August 31, 2009 - link
Here is an issue I think deserves to be adressed: could an conventional HDD (with 2-3 or 4 platters) slow down the performance of a PC , even if that PC boots from an excellent SSD drive, like an Intel X-25M? Let's say that on the SSD lies only the operating system, and that onto the conventional HDD lies the movie and music archive. But both drives run at the same time, and it is a well known fact that the PC runs at the speed of the slowest component (in our case the conventional HDD).I did not found ANYWHERE in the Web a review, or even an opinion regarding this issue.
I would appreciate if I get a competent answer.
Thanks a lot!
gstrickler - Monday, August 31, 2009 - link
That's a good question, and I too would like to see a report from someone who has done it.Some of your assertions/assumptions are not quite accurate. A PC doesn't "run at the speed of the slowest component", but rather it's performance is limited by the slowest component. Depending upon your usage patterns, a slow component may have very little effect on performance or it may make the machine nearly unusable. I think that's probably what you meant, I'm just clarifying it.
As for putting the OS on an SSD and user files on a HD, you would want to have not only the OS, but also your applications (at least your frequently used ones) installed on the SSD. Put user data (especially large files such as .jpg, music, video, etc.), and less frequently used applications and data on the HD. Typical user documents (.doc, .xls, .pdf) can be on either drive, but access might be better with them on the SSD so that you don't have to wait for the HD to spin-up. In that case, the HD might stay spun-down (low power idle) most of the time, which might improve battery life a bit.
Databases are a bit trickier. It depends upon how large the database is, how much space you have available on the SSD, how complex the data relations are, how complex the queries are, how important performance is, how much RAM is available, how well indexes are used, and how well the database program can take advantage of caching. Performance should be as good or better with the database on the SSD, but the difference may be so small that it's not noticeable, or it might be dramatically faster. That one is basically "try it and see".
Where to put the paging file/swap space? That's a tough one to answer. Putting it on the SSD might be slightly faster if your SSD has high write speeds, however,that will increase the amount of writing the the SSD and could potentially shorten it's usable life. It also seems like a waste to use expensive SSD storage for swap space. You should be able to minimize those by using a permanent swap space of the smallest practical size for your environment.
However, putting the swap space on a less costly HD means the HD will be spun-up (active idle) and/or active more often, possibly costing you some battery life. Also, while the HD may have very good streaming write speeds, it's streaming read speed and random access (read or write) speed will be slower than most SSDs, so you're likely to have slightly slower overall response and slightly shorter battery life than you will by putting the swap space on the SSD.
On a desktop machine with a very fast HD, it might make sense to put the paging file on the HD (or to put a small swap space on the SSD and some more on the HD), but on a machine where battery life is an important consideration, it might be better to have the swap space on the SSD, even though it's "expensive".
Pirks - Monday, August 31, 2009 - link
just turn the page file off, and get yourself 4 or 8 gigs of RAMgstrickler - Monday, August 31, 2009 - link
Windows doesn't like to operate without a page file.smartins - Tuesday, September 1, 2009 - link
Actually, I've been running without a page file for a while and never had any problems. Windows feels much more responsive. You do have to have plenty or ram, I have 6GB on this machine.mtoma - Thursday, September 3, 2009 - link
In my case, it's not a problem of RAM (I have 12 GB RAM and a Core i7 920),it's a problem of throwing or not 300 dolars down the window (on a Intel SSD drive). Currently I have a 1.5 TB Seagate Barracuda 11th generation, on wich I store ONLY movies, music and photos. My primary drive (OS plus programms) is a 300 GB Velociraptor.Do you think diffrent types of Windows behave difrent if you remove the page file? It seems to me if I remove this page file, I walk onto a minefield, and I don't want to do that.
Besides that, my real problem is to use (when I purachase the Intel drive) the Seagate Barracuda in a external HDD enclosure OR internally, and thus, possibly slow down my PC.
SRSpod - Thursday, September 3, 2009 - link
Adding a slow hard drive to your system will not slow your system down (well, apart from a slight delay at POST when it detects the drive). The only difference in speed will be that when you access something on the HDD instead of the SSD, it will be slower than if you were accessing it on the SSD. You won't notice any difference until you access data from the HDD, and if it's only music, movies and photos, and you're not doing complex editing of those files, then a regular HDD will be fast enough to view and play those files without issues.If you don't plan to remove it from your system, then attach it internally. Introducing a USB connection between the HDD and your system will only slow things down compared to using SATA.
Removing the pagefile can cause problems in certain situations and with certain programs (Photoshop, for example). If you have enough RAM, then you shouldn't be hitting the pagefile much anyway, so where it's stored won't make so much of a difference. Personally, I'd put it on the SSD, so that when you do need it, it's fast.
samssf - Friday, September 18, 2009 - link
Won't Windows write to the page file regardless of how much RAM you have? I was under the impression Windows will swap out memory that it determines isn't being used / needed at the moment.If you absolutely need to have a page file, I would use available RAM to create a RAM disk, and place your page file on this virtual disk. That way you're setting aside RAM you know you don't need for the page file, since Windows will write to that file anyway.
If you can, just turn it off.
minime - Monday, August 31, 2009 - link
Would someone please have the courtesy to test those things in a business environment? I'm talking about servers. Database, webapplication, Java, etc. Reliability? Maybe even enrich the article with a PCI-E SSD (Fusion-IO)?ciukacz - Monday, August 31, 2009 - link
http://it.anandtech.com/IT/showdoc.aspx?i=3532">http://it.anandtech.com/IT/showdoc.aspx?i=3532