2013/03/14

Disk Gazer

120%趣味で作ったソフトです。

1. 概要

物理的ディスクのシーケンシャルリードの転送速度を細かい単位で、かつ位置を問わずに計測するためのベンチマークツールです。というより、HDDの記録面の波形を見るためのソフトと言った方が正しいですが。HD Tune Proよりもきめ細かく(1MiB以下)、HD Tune Proでは見られなかった先頭以外の波形も確認できるのがポイントです。

現在のHDDは、2.5インチHDDでも最外周のトラック当たり容量は1MiBを超えるので、トラック1本と同じか小さいぐらいの単位で計測できることになります。

リード方法はhiyohiyoさん作のCrystalDiskMark(3.0.2)のシーケンシャルリードテストをベースにしています。ただし、Disk Gazerは物理的ディスクをファイルシステムを使わずにリードすること、Block size(一度にリードする量)ごとに時間を記録して速度を計算するなどの違いがあります。

そもそも途中の計算順序や端数処理で結果が微妙に変わってくるのがコンピューターの計算なので、近い値にはなっても必ずしも一致はしません。最終的に表示されたものが、そのベンチマークにおける値ということで。

といっても、Disk Gazerの場合、計測単位が小さい関係上、最大値(Max)も最小値(Min)も瞬間的に出ただけの値になるので、あまり意味はありません。また平均値(Avg)も、波形の前ではあまり参考にはなりません。波形そのものを見るためのものです。という意味で、ベンチマークと呼ぶのは正しくない気もしますが……。

実用的な面では、代替セクタになっている位置が分かるかもしれません……。

細かいことは、興味があればreadmeを見てください。

[追記]

Disk Gazerを拡張した話を書いたので、実行ファイルとソースコードはそちらから。

2. Travelstar 7K1000

Disk Gazerのテストを兼ねてHGSTの7200RPMのTravelstar 7K1000を買ったので、まず定点観測的に。

左側が7K1000、右側が5K1000の1TBモデル。
7k1000-5k1000-1

ラベル以外の外見は、回転数が違うにもかかわらずPCBを含めて全く同じ。一方、重量は5K1000が100gなのに対して、7K1000は112gと重い。回転音はそれと意識するほどの差は感じない。

ラベルは日立の会社名が抜けて、略称だったHGSTがそのまま会社名になっている。5Vの消費電力が5K1000の700mAから800mAに増えているのが、回転数の差を反映している。

CrystalDiskInfoで見たところ。バッファサイズが32MB以上になっている。
7k1000-cdi52-en

先頭10GBにパーティションを作成し、ThinkPad X61s上のWindows 8からCrystalDiskMarkで計測。
Travelster 7K1000: CrystalDiskMark

シーケンシャルアクセスでは5K1000が114MB/s程度だったので、7K1000は138MB/s程度で21%増と、HDDとしては満足すべき速度向上だと思う。

次にHD Tune Pro(4.01)のBenchmarkで全領域を通して見たところ。Block sizeは1MiBに設定。
Travelstar 7K1000: HD Tune Pro (Full and Partial test)

HD Tune ProはWindows 8上ではウィンドウ内の部品のサイズ調整がうまく行かないらしく(5.0でも同様)、日本語表示だとはみ出してしまうので英語表示にしたら、今度は小さすぎる……が、そこは措く。

結果はいつものHD Tune Proで、CrystalDiskMarkより値が高めなのも従来どおり。

ランダムアクセスはこんな感じ。
Travelstar 7K1000: HD Tune Pro (Random access)

リードを見る限り、回転数相応か5K1000より少しだけ向上している。

さて、記録面はどうかというと以下のとおり。
Travelstar 7K1000: HD Tune Pro (Short stroke)

4つの面が出ている。2GBの結果を見ると、
Travelstar 7K1000: HD Tune Pro (Short stroke)

かなりはっきりした波形で、各組の長さは620MBといったところ。5K1000が667MBだったので、少し小さい。

SpecificationにあるCylinder allocationから計算すると、最外周のゾーン0のトラック当たり容量は、5K1000が約1.17MiBなのに対して、7K1000は約1.13MiBで少し小さいが、典型的な例として示されているだけなので直結はしない。

3. テスト

この7K1000と5K1000の1TBモデルがDisk Gazerでどう見えるかテストしていく。

それぞれの先頭を、領域のサイズ(Area)を0.5GiBと1GiBに設定して計測。なお、チャートの単位はY軸が速度(MB/s)で、X軸が位置(MiB)。

びっしり剣山のように上に突き出している部分は、位置も高さも再現性があるので単純な計測上のノイズではないが、とりあえず措くとして、波形自体は極めてクリアに出ている。カメラのピントが合ったというか、これが本来の波形で、HD Tune Proで見えるものは、あれはあれで鈍っているのだと思う。

さらに、領域のサイズを1GiBで、位置(Location)を中央と末尾にして計測したものを重ねて表示すると(水平移動させるので本来の位置とは違う)以下のようになる。

位置が後ろに行くにつれ、波形が形を変え、全体的に低く短くなっていくのが捉えられている。

面から針のように出ている部分も変わっているが、この正体を探るため、ThinkPad X60sでも計測してみる。位置は先頭で、領域のサイズは0.5GiB。

5K1000は依然剣山になっているが、7K1000は135MB/s当たりより上には出ず、水平になっている。これには単純な理由があって、X60sはSATA 1.5Gb/sなので、この当たりがバスの実効上の上限になっていて、それに引っ掛かっている。

見方を変えると、バスの上限でカットされるということは、針のような部分が起きているのはバスの向こう側、つまりPC本体側ではなくHDD側ということになる。となると、HDDの内部で起きていることなど追求しようがないが、Disk GazerのBlock Offset(readme参照)を使えば、何とかならなくもない。

簡単に言うとBlock Offsetを使えば計測上の偽の値を選別できる、と期待されるので、X61sに戻ってBlock Offsetを1/16に設定し、改めて計測してみた。

結果は、中央と末尾ではBlock Offsetがよく効いて、記録面が切り替わるときの谷もはっきり出ている。一方、先頭では一定の高さで残っている。

これは針のように値が高くなる位置が完全には固定されておらず(固定されていれば、記録面が切り替わるときの谷のように高さは変わらない)、リードの開始位置によって位置が微妙に変わることを示唆しているが、値が高くなる部分が存在することは変わらない。いずれにせよ、これ以上の追求は難しい。

4. 残っていた問題

続いて、記録面に関して当てになる道具がないがゆえに残っていた問題について、Disk Gazerを使って再度トライしてみる。

4.1. Travelstar 5K1000-500

HD Tune Proで先頭を見て確認できた水平線の高さは2段階だけだったので、先頭以外はどうなっているのかDisk Gazerで見てみる。ThinkPad X61s上のWindows 8から先頭、中央、末尾の1GiBの領域を計測し、重ねて表示したところ。

中央と末尾では1つの水平線の高さがずれて3段階になっている。記録面が切り替わるときの谷もはっきり出ているし、4記録面だと改めて確認できた。

4.2. Travelstar 5K500.B-500

Iometerを使った方法では途中から値がおかしくなったので、これも同様に見てみる。ThinkPad X60s上からで、まず5K500.B-500aの方。

波形が途中で変わっているのがはっきり見て取れる。先頭では針のように高くなる部分はまだらな一方、中央では下に向かって多数出ているので、これが機種とディスク中の位置に依存していることが窺える。

次に5K500.B-500bの方。これはHD Tune ProとIometerで確認できた水平線が同じ長さで2段階の高さの2つだけだったので、どういう面の構成になっているか判別できなかった。

先頭ではそれぞれの水平線の真ん中に規則的に現れる谷があるが、中央と末尾でははっきりしない。そこでBlock Offsetを1/8に設定して再度計測してみた。

これでようやく記録面が移り変わるときの谷がそれぞれの水平線の真ん中に確認できた。したがって、最初から最後までゾーンを通して同じ記録密度の記録面が2組ある4記録面の構成だと言える。

4.3. Momentus 5400.5-320

これもIometerでは途中から値がおかしくなったので。

DiskSpeed32の結果から見当は付いていたが、後方に行くにつれ波形が同じ形のままミニチュアのように小さくなっていくのが分かる。

4.4. Scorpio WD2500BEVS

これはIometerを使う方法では全く歯が立たなかった。

中央では明らかに先頭から波形が変わっているのが分かる。鏡像反転でないことといい、HGSTに近い。

4.5. Momentus 5400.3PSD

HD Tune Proの結果から構成を推測してみたが、あまり確信はなかった。

中央で1つの水平線の高さがずれて3段階となり、推測したとおりの鏡像反転であることがはっきりした。

一方、先頭、中央、末尾に共通して、鏡像反転するときは記録面の移り変わりの谷が見えないが、それ以外のときは谷がはっきり見えている。これは鏡像反転するときは同じ記録面上でそのまま移動するだけだから時間はかからないと考えれば矛盾はしない、というか鏡像反転を裏付けるものだと思う(5400.5では谷が出ているが……)。

5. まとめ

以上、Disk Gazerが記録面を見るための道具として使えることは確認できた。これがあれば記録面に関するたいていの問題には答えを見つけられるのではないかと思う。

0 コメント :