東芝製SSD THNSNF128GCSSのS.M.A.R.T.値がおかしなことになっている件(11)

東芝製SSD THNSNF128GCSSの残り寿命を示すS.M.A.R.T.値のうち「AD 消去回数」値が、なぜかディスクへの読み書きを行わないWMI(Windows Management Instrumentation)のWin32_DiskDrive命令を呼び出すだけで減っていく件。

検証をつづけた結果、どうやらやたらとWin32_DiskDrive命令を高速に呼び出せばいいわけではないことが分かってきた。

下図のグラフをご覧頂きたい。

crystaldiskinfo_4ssdcomparison20160327b

ヨコ軸は、毎秒何回Win32_DiskDrive命令を呼び出すか。

タテ軸は、その結果、Win32_DiskDrive命令の呼び出し1000回あたり、AD値が平均いくつ減るか。

このグラフを見ると、Win32_DiskDrive命令の呼び出し回数は、毎秒6~13回あたりがもっとも効果的にSSDの寿命をすり減らすことができると分かる。

つまり70ms~170msごとにWin32_DiskDrive命令を呼び出すと、もっとも東芝製SSD THNSNF128GCSSの寿命を高速にすり減らすことができるということになる。

しかし、そもそも疑問なのは、呼び出し回数とAD値の減少が一次関数的ではない、ということだ。

呼び出し回数がある範囲におさまるときだけ、AD値が急激に減少している。

Win32_DiskDriveという特定の命令の呼び出しが、AD値減少の「原因」なのであれば、原因の発生頻度が多ければ多いほど、AD値の減少幅も大きくなるのが自然である。

おそらく、Win32_DiskDriveという特定の命令の呼び出しがAD値減少の「原因」なのではなく、東芝製SSD THNSNF128GCSSのファームウェアの方が、Win32_DiskDrive命令の特定の呼び出し回数にしか反応しない「仕様」になっていることの方が原因だと分かる。

なぜわざわざ特定の呼び出し回数だけに敏感に反応するような「仕様」になっているのだろう。

ここまで来るとまったく理由が分からないが、いずれにせよ呼び出し回数とAD値減少が、ミリ秒単位で見ると一次関数的でないことから、ファームウェアの仕様が原因なのであって、Win32_DiskDrive命令を呼び出すプログラムの側が原因ではないと断定できる。

仮にメーカ側が、Win32_DiskDrive命令を数十ミリ秒ごとに呼び出すようなプログラムの側に原因があると主張するのなら、このやや特殊なファームウェアの「仕様」を事前に公開していることが前提だ。

たとえば、24時間稼働で頻繁にディスクドライブの状態を監視するという要件でプログラムを開発するとき、SSDユーザ側としては、その機器に東芝製SSD THNSNF128GCSSを使用してはいけない、という情報を事前に入手しておく必要がある。

事前に情報が公開されておらず、プログラムの稼働後にたまたまその「やや特殊な仕様」が発見されたのでは、SSDのユーザ側としてはメーカ側の情報開示が不十分だと主張せざるをえない。

もし筆者の書いていることに非合理的な点があれば、ご指摘いただければありがたい。

最後に本日時点までの同SSDのAD値の推移。27日間で、初期値の200から155まで減っている。

同じPCに同じくSATA接続しているSanDisk、Crucial(Micron)製のSSDのS.M.A.R.T.値は「温度」を除いてこの27日間で全く変化はない。同じ頻度でWin32_DiskDrive命令を呼び出しを受けているにもかかわらず、である。

crystaldiskinfo_4ssdcomparison20160327a