SSD耐久テストその2
2008.12.15
6TBを超えたところでエラーになった。


最終的にGB単位で計算するので、ここに表示されているのは書き込んだ容量の1GB分なのだが、あまりにもエラーの気配が感じられず間違ったかな……と不安になってしまったが、どうやら正しかったようだ。ちなみに書き込んだファイル数だが、ライトキャッシュをフラッシュした回数を加算してしまったので、実際はもっと少ない。


今回は最初からファイルが散らばっていたせいか離散が目立つ。こんな状態で壊れ始まったら、ほとんど助からないと思われる。


今回は派手に壊れてくれたようで、元のファイルが何だったのか判別不可能な世界だ。確か今は西暦2008年だと思うのだが、2010年や2066年が姿を現した。どうやらタイムマシンが完成したようだ。机に引き出しがある人は、念のため中を確認したほうが良いだろう。


ファイルの合計が20GBと表示されているが、最近のSSDは容量を超えて保存できるんだろうか。がんばり屋さんなSSDだなと感心している場合ではない、これは1つのファイルの中身だ。元は13MB前後のファイルだったと思うが、このように複数のフォルダーとファイルになってしまった。


前回と異なる点がこれ。普通にファイルを削除できてしまう。どうやら書き込めない部分が少し存在するだけで、他はまだ無事なようだ。いや、先程のエクスプローラーの中身を見て、無事と呼ぶのはおかしいのだが……。


試しに全部削除して再びテストをしてみたが、11GB書き込めた。このあとは前回同様、ファイルシステムごと破壊されたような大惨事となるわけだが、こんな状態で使い続ける人はいないと思うので、この11GBは除外することにした。


左側が今回の結果で、右側が前回の。書き込めたのは6×1024+104で6248GBだ。前回の6994GBと比較すると、746GB少なかった。

 6994−6248=746GB

これは使用量90%での結果なので、0.9で割って100%にすると829GBになる。

 746÷0.9=829GB

829GBは、前回の6994GBの11.853%になるようだ。この結果から、SSDを100%使用している状態では、ウェアレベリングで発生するオーバーヘッドは、約12%だということがわかる。

 829÷6994×100=11.853%

2回のテスト結果から得られた計算式はこれ。前回の式よりは正確と思われる。

 (SSDの容量−使用量×0.12)÷1日の使用時間×16.8=寿命

 例
 8GBのSSD(7.5GB) 空き容量3.5GB(使用量4GB) 1日に7時間使用
 (7.5−4×0.12)÷7×16.8=16.848
 寿命は約16〜17年

主な用途(1日に10時間)
SSDの容量 ネット・オフィス・ゲーム 写真編集・TV録画 動画編集・リッピング
4GB 5〜6年 2〜3年 1年
8GB 11〜12年 4〜5年 2〜3年
16GB 22〜25年 8〜10年 5〜6年
32GB 44〜50年 17〜20年 11〜12年
64GB 88〜100年 35〜40年 22〜25年
128GB 176〜200年 70〜80年 44〜50年

SSDの容量ごとの寿命を表にしてみた。ディスクアクセス頻度によって3つに分けてあり(左から20%、50%、80%)、それぞれの年数は空き容量0%〜100%になっている。


SSD使用量が、どれだけ寿命に影響するかグラフにしてみたが、ほとんど影響していないことがわかる。必死になって空き容量を稼いでいると、寿命を大幅に延ばせたような気分に浸ってしまうが、実際は数%程度、つまり誤差の範囲でしかなかったようだ。

例えば空き容量が500MBなAと、2.5GBなBがあったとする。なんとなくBのほうが5倍長持ちしそうだが、現実はAより3%長持ちなだけである。寿命を3%延ばすために5倍の苦労をするのは、どう考えても自己満足な世界だ。

もっと気軽に使って良いんだと思う、SSDって。



2008.12.11
順調に5TBまでやってきた。


5〜6TBあたりで壊れるのを予想していたのだが、あまり空き容量は関係ないんだろうか。



2008.12.8
4TBだ。


快適な速さで壊れていく。



2008.12.4
3TBになった。


このままいけば今年中に結果が出そうだ。



2008.11.30
快適な速さで2TBだ。


前回、動かしているプログラムが改変されるという、想像を256%上回る壊れ方をしたので、今回は1日に3回バックアップをとっている。完全に壊れたプログラムは動かないから問題ないが、中途半端に壊れたプログラムは、平気な顔して誤作動するから厄介だ。



2008.11.26
今回は書き込み速度が速いので、もう1TBになった。


もしウェアレベリングが機能していなかったら、この時点で壊れていたことだろう。



2008.11.22
寿命計算式の1行目(空き容量の計算)には悩んだ。前回のテストにはウェアレベリングによるオーバーヘッドが含まれていないため(微量過ぎる)、単純に比率で求めてみたのだが、より正確な答えを求めるならば正しい式とは言えない(テスト結果には一致しているが、他のケースでも同じことが言えるわけではない)。

 SSDの容量−使用量×使用量÷SSDの容量=空き容量
 空き容量÷1日の使用時間×16.8=寿命

もし最善な結果を考えるとしたら、ウェアレベリングによって移動させられると思われる回数分だけ、SSDの容量から使用量を引く必要がある。仮に耐久力が100下がるごとにウェアレベリングするとしたら、式はこうなる(7544は前回のテスト結果から)。

 SSDの容量−使用量×7544÷100÷1024=空き容量

計算してみると、実際に使用できると思われる容量に差が出ることがわかる。

 前者 7.5−4×4÷7.5=5.367
 後者 7.5−4×7544÷100÷1024=7.205
 8GBのSSD(7.5GB) 空き容量3.5GB(使用量4GB)

最初は後者の式を採用しようかと思ったが、空き容量が減ってきた状態での挙動に疑問があったのと(壊れる前日のように極端に遅くなることが稀にあった)、目標10000回の約75%で壊れたことから、最終的には悪い結果になる前者の式を選んだ。もしこれらが空き容量とは無関係ならば、最善な結果となる後者の式を選ぶことになる。

本当にここまで最適化されているのだろうか。メーカーがシーケンシャルアクセスのみ最善な結果を保証しているように、実際は早めに寿命を迎えるのが普通なのではないだろうか。


考えていても正しい答えは出てこないので、今回はウェアレベリングによるオーバーヘッドが、どれぐらい空き容量に影響するのか調べてみよう。もしほとんど影響がないのであれば、無理して空き容量を稼ぐ必要がなくなる。SSDの使用量を90%にし、10%の空き容量だけで前回と同じテストを繰り返す。