Sunday, August 31, 2008

Calculation of SSD life time in EEE PC

[Update: 9/1/2008, I was wrong :-) Most of flash devices uses special algorithms to avoid situation when change of value in "logical" cell means every time change of cell in hardware. Those algorithms instead of altering data in cell try to rewrite it to another area of disk, and thanks to this heavy writing to one and the same logical cell means that truly those writings are spread over some number of cells, and thanks to this after 10000 writes any of those cells did not reach this limit, and any of those cells isn't even near of this limit]

OK, over Internet you may find many articles about lifetime of SSD in EEE PC.

Known facts:
Limit of SSD in EEE PC is about 10 000 cycles, we know it from FAQ on Asus page:

Eee PC SSD has the life time, how long is it?

Eee PC SSD has the life time to be read or written 10,000 times averagely.
To prolong the life time, the virtual memory function has been disabled in Linux system.

Base on this I performed my own calculation, and experiment.

My first method of calculation based on the fact, that my own EEE PC 900/XP has 4 GB On-Board SSD. This SSD is formated in NTFS, with about 1 million allocation units [each 4096 bytes].
My assumption is that if we write to allocation unit, we at least write to it's first bit. So Instead of analzying of more then 64 billions cells we need only made calculations for 1 million cells.
My simulations shows what we need about 1 billion writes on disk [with assumption that distribution over disk surface is equal] to achive situation when 1 of cells be written more then 10 000 times. [Simple multiplication of cells number and limit gives almost the same results ;-)]
10 billion writes with average speed of 10 allocation units per second [this gives us about 340 MB per day] will reach limit after about 31 years.
So in this model 10 years of life is a safe assumption.

My second method base on suppose that operating system may write data to same disk areas much often then it may be supposed from previous model.
To test it I used JPC emulator [it's PC emulator writen in Java], which I modified in this way that it write to log file each write operation on hard drive.
As an operating system I used Linux with kernel 2.4, it's Linux from image shiped with JPC.

My experiment shown that in each start, and shutdown this Linux write some data to sector number 2 on the hard drive.

It narrows our lifespan to about 5000 start/shutdown cycles.
If we restart our EEE PC about 1 time per day, and we do it each day of the year, those 5000 cycles limit will end after about 13.5 year. If we will have 4 start/shutdown cycles in the day this limit will be reached after about 3.5 year.

This 5000 start/shutdown cycles limit was determined by me for Linux, but my assumption is that Windows XP isn't significant different then Linux in this area.

My conclusion is that safe limit for EEE PC is about 4-5 years with normal usage, and about 10 years with rare usage.

Of course if system haven't some other areas which it likes even more ;-)

And with assumption that SSD in EEE PC haven't some special features which will increase those limits [example, maybe SSD have some build-in "table" where it tries to count how many writes was performed for some areas of "surface", and when given area reach its limits it may remap this area to some other reserved surface. If only 1% of disk surface is used in havy way, adding this mechanism will increase life time of SSD about 2 times, with only about 1% surface lost].

Similar postsbeta
Which language is fastest? ;-)
Programmers love to over complicate...
How to get negative number from size() in LinkedList in Java? ;-)
Buzz Troll Remover v0.3.2
CallLoger ;-) Invigilate yourself ;-)


  1. How long will live (in years) "OCZ SSD 120 GB" ?

    If system has 1 restart per month and works 24/7/365

    Please calculate..

    Big thanks.

  2. Many (almost all) SSDs have an algorithm for wear leveling.

    If you had your OCZ at 50% capacity full, and the conservative rated life of 10,000 writes for MLC, if you wrote 10MBytes per second, continuously, without powering off your computer off at all, it would take about 2 years minimum.

    Most people turn their PCs off when not in use, if it were 12hrs/day, you'd get 4 years, but more importantly most folks do not have 10MegaBytes per second written continuously, 24hrs/per day. Most background writes are about 10-100KBytes/second when system is active. Your controllers MAXIMUM sustained write capacity is about 80MBytes/second. So you couldn't write more even if you wanted to.