[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Please help me to evaluate flash/ssd life using vmstat -d


I run a debian firewall on an atom PC running of a 16G flash drive. I am trying understand the amount of disk write performed in order to understand how long my flash is likely to last. I have two vmstat -d information on the flash

   2011-01-31 00:35
disk- ------------reads------------ ------------writes----------- -----IO------ total merged sectors ms total merged sectors ms cur sec sda 10624 4770 352041 16848 2532 464 70880 546908 0 36 sda1 10621 4767 351993 16844 2532 464 70880 546908 0 36

   2011-02-03 16:01
disk- ------------reads------------ ------------writes----------- -----IO------ total merged sectors ms total merged sectors ms cur sec sda 10736 4827 357265 17084 9649 1621 206984 1057928 0 76 sda1 10733 4824 357217 17080 9649 1621 206984 1057928 0 76

Note that the kernel writes do not translate into equivalent size writes into the flash. This is because flash has to be always written in multiples of erase block units (or write allocation size or some such thing). So I like to know how to translate above writes into number of erase-block writes. I could simply use number of sectors as the number of erase blocks and get a very conservative estimate. This way I get 136104 erase blocks in 88 hours. Assuming erase block is 512K and flash can deal with 10K writes per block before it dies, I calculate (16G*10000)/(136104*512K)*88 hours of life. This is 211866 hours or 24 years. Plenty for me.

But, I really do not like being this conservative. So, I like to know if the number of writes under the column titled "total" refers to the number of kernel writes in which each write is a single disk IO for contiguous group of sectors. If so, I can assume that each such write will cause at most two erase-block writes on the flash giving me a life of (16G*10000)/((9649-2512)*2*512K) * 88 hours. This is 2020165 hours or 230 years. While I do not need this much life out of the flash, I like to know which one is closer.

I have not done any optimization for the flash like aligned partitioning and use of tmpfs. However, I have used noatime mount option which reduced the number of writes by an order of magnitude or more.


Reply to: