2012/10/31

CrystalDiskMarkとTrim

SSDの速度を測る場合、その前の使い方(とくにライト)が影響するのはよく知られていて、Secure EraseやTrimでクリーンな状態にした後、ライトを繰り返して乱れた状態が一定以上に達すると速度低下が起こったりする。

そうした影響をなるべく防ぐための工夫は色々あり得るが、理由あって同じSSDを連続して計測する場合、その間にTrimをかけるのはどうかというアイデアを持っていた。で、最近はTrimもすっかり一般化したことだし、CrystalDiskMarkを使って試してみた(結果的には不発)。

1. 計測方法


CrystalDiskMarkを連続して実行し、その実行間にTrimをかける場合とかけない場合で差が出るかを見る。

環境
  • PC: ThinkPad X61s
  • SSD: Intel X25-M G2 80GB(OSなどで全容量の60%が埋まった状態)
  • OS: Windows 8 Pro 64bit(ドライバーはすべてOSの自動インストール)
方法
  • CrystalDiskMark(3.0.2)を4GBで空のNTFSのパーティションに対し、テスト種類All、テスト回数9、テストサイズ2000MBの設定で30回実行。
  • 実行間には1分の間隔を挟み、Trimをかける場合は前回の実行直後にこのパーティションを対象に実行(先に示した方法で)。
  • どちらの場合も最初の実行前にTrimをかける。
  • ライト量の確認のため、一連の実行の直前と直後にCrystalDiskInfo(5.1.0 RC2)でHost Writes(総書き込み量)を取得する。Host Writesはあくまでホスト側(PC本体側)から見たライト量なので、SSD内部のライト量には直結しないが、参考にはなる。なお、この間は他のライトを伴う作業はしない(OSが勝手に行うものは除く)。
SSDのX25-Mには今更感があるが、これまでの実績から見て余裕を大幅に残したまま引退となるのは確実なので、多少消耗させてもよしという事情も背景にあり。

また、こういう計測をきっちり進めていくのは結構面倒なものだが、そこはDiskMarkStreamで楽々(自画自賛)、というよりDiskMarkStreamがあったからやる気になったというべきか。

2. 計測結果


先にどれぐらいのライト量になったかを確認すると、まずTrimをかけなかった場合の実行前と実行後のCrystalDiskInfoの結果。

次にTrimをかけた場合の実行前と実行後。
(注)E9が96から95に落ちているが、96になったのはかなり以前のことなので、意味はない。

一番最初のHost Writesの生の値は76752で、この16進数を10進数に換算すると485202になる。この値は65536セクタ、すなわち65536×512÷1024^2=32(MiB)ごとに1増えていくので、容量としては以下のようになる。

485202×32=15526464(MiB)≒14.807(TiB)

同様にそれぞれの値を計算し、実行前と実行後の差から増加量を求めると、
生の値
換算後
増加量
16進数
10進数
(MiB)
(TiB)
(MiB)
(GiB)
Trimをかけなかった場合
実行前767524852021552646414.807984320961.25
実行後7DF7A5159621651078415.746
Trimをかけた場合
実行前7E15F5164471652630415.761978496955.56
実行後858D15470251750480016.694

これらの増加量はそれぞれ9×30=270回分のテストによるものなので、1回のテストの増加量は約3.54~3.56GiBとなるが、これはテストサイズが2GBということを考えるとこんなものかと思う。どちらも全増加量は1TiB近くに上っている。

ここで、X25-M G2で速度低下を起こした後にTrimで回復した例(SSDの性能低下とTrimの効き具合を大検証)を見ると、一旦容量の90%までライトで埋めている。

方法は違うが、この全増加量は全容量80GBの12倍に当たるので、変化を起こさせるに十分なライト量ではないかと思う。というか思った、が……。

結論から言うと、CrystalDiskMarkの結果は不発だった。

まずTrimをかけなかった場合、30回の実行中、ばらつきは多少あるが、有意な変化といえるものはなかった。以下は1回目、15回目、30回目のもの。

一応、次にTrimをかけた場合、同様に以下。

こちらも有意な変化はない(Trimが効果を発揮していれば変化はなくて問題ないわけだが)。

3. まとめ


1TiB近くのライトをもってして速度低下を起こせなかったのは誤算だったが、CrystalDiskMarkを連続実行しても再度Trimが必要になるような速度低下は起こらないことが確認できたので(X25-M限定でだが)、それはそれでよしとする。

しかし……、この結果を見るに、実使用でもTrimを頻繁にかける必要はない気がしてきた。1TiBなんて普通に使う限り数箇月たっても到達しない量だと思うし。

2012/10/27

CrystalDiskMarkと雫ちゃんと

Windows 8発売の26日(というか25日深夜)にCrystalDiskMarkにも3.0.2で
Shizuku Editionが登場したので、早速、当然にDiskMarkStreamで対応。

通常版との違い、サイズなどは自動で判別する。

しかし、この麗しい姿といい、青白基調の流麗なデザインといい、これを目にすると、殺伐としたベンチマークの世界(ついあれもこれもとデータを取ろうとして、環境を整えて計測しているうちに消耗戦になってきて、あまり美しい状況にはなり難い)に涼風が吹き込まれる、というより、まとめて毒気を飛ばされてしまう危険性がある……。

その意味では機械的なマクロツールであるDiskMarkStreamはそぐわない気もするが、多少矛盾をはらんでいた方が面白い、ということにしておこう。

なお、通常版のテーマのShizukuでもエッセンスは共通。

ちなみに、Windows 8ではSSDのドライブに対してコマンドプロンプトから簡単にTrimを発行できるので(Defragの/Lオプション)、DiskMarkStreamのバッチ実行機能を使えばテスト間にTrimをすることができる。


このためのバッチファイルの内容は以下のようなもの。対象のドライブはDで、結果は後から確認するためにresult.txtというファイルに出力している。
C:\Windows\System32\Defrag.exe D: /L >> C:\Work\result.txt

ただし、Windows 8が64bit版の場合、このパスではDefrag.exeがDiskMarkStreamから見えない問題がある。これは32bitのソフト(DiskMarkStreamは32bit)を64bitのWindows上で実行するときに起こり得る問題で、この場合は以下のようになる。
C:\Windows\Sysnative\Defrag.exe D: /L >> C:\Work\result.txt


どちらの場合もDefragは管理者として実行する必要があるので、DiskMarkStreamも起動時に管理者として実行する必要がある(DiskMarkStream自体は管理者として実行される必要はないが、バッチ実行を管理者として行うトリガーとし、かつバッチ実行の度にUACの承認を求められるのを避けるため)。

[追記]

Windows 8におけるTrimについて、Microsoftの担当者(Kiran Bangalore)が答えていた(Defragging SSDs a default?)。Windows 8では(Windows 7と同様に)ファイルの削除、移動の際にTrimを発行しているが、SSDの方がリアルタイムに処理できない場合を考えて、「ディスクの最適化」で定期的にTrimを発行するようになっている(これがデフォルト)とのこと。

2012/08/31

Windows To Goのまとめ

Windows To Goの最終的な姿がWindows 8 RTMとともに明らかになったので、まとめておこうと思う。

1. 条件


使用条件は以下のとおり。狭き門となっている。

1.1. 対象ユーザー


ソフトウェアアシュアランス(SA)プログラムに入った、ボリュームライセンスのユーザー向けのEnterprise版のみ。つまり企業ユーザーの下でその社員が使う場合のみで、個人ユーザーには提供されない。


1.2. ハードウェア


PC本体側の条件はWindows 7かWindows 8の動作条件を満たしていればいいので問題にはならないが、USBメモリというか、USBドライブ側の条件は厳しい。

8月15日現在、MicrosoftがWindows To Goが使えると認定した(certified)USBドライブは、以下の2機種のみ。

いずれも一般的なUSBメモリとは違って、内部的にはSSDにUSBインターフェイスチップを付けてUSB接続にした製品で、ランダムライトが高速なのが特長だが、それ以上に門を狭くしているのはPCに接続した際にリムーバブルディスクではなく、ローカルディスクとして認識されなければならないという点。

RPまでのWindows To Goではリムーバブルディスクの場合はWindows Updateが不可という問題があったが、結局リムーバブルディスクは対象外と整理されたことになる。いずれにせよ、USBメモリでローカルディスクと認識される製品は例外的なので、ほとんどのUSBメモリは対象から外れることになる。

一方、SSDをUSBケースに収めたUSB SSDであるところのUSBドライブでも、ローカルディスクと認識されるものなら可なので(サポート外だが)、その手を厭わなければこの条件をクリアするのは難しくはない。

なお、DataTraveler Ultimateについては、既存のG1のコントローラはJMicron、G2はPhisonと判明しているが、このWindows To Go用のDataTraveler WorkspaceはLSI、つまりSandForceのようなので、中身は別物らしい。

[追記1] DataTraveler Workspaceのデモ

IDFでKingstonからDataTraveler Workspaceのデモがあった。コントローラはやはりSandForce。筐体はUltimateからデザインが変更されているが、丸く寸胴な基本形状は変わっていない。



[追記2] DataTraveler Workspaceの中身

The SSD ReviewによるDataTraveler Workspaceの記事(Kingston Data Traveler Workspace Windows To Go Flash Drive Review)によると、DataTraveler Ultimateと同様にPCBを2枚重ねにした構造で、コントローラはSandForceのSF-2241。チップと筐体との間に熱伝導シートがべったり挟まれている当たり、発熱はそれなりにありそうではある。性能的には期待どおりといったところ。

[追記3] Express RC8との比較

同じThe SSD ReviewによるExpress RC8の記事(Super Talent USB3 Express RC8 100GB Flash Drive Review)によると、コントローラはSF-1222で古いにもかかわらず、同じ環境でのCrystalDiskMarkなどベンチマークの結果はDataTraveler Workspaceより上だったりして、少し意外なことになっている。

2. Express RC8


この2機種のうちDataTraveler Ultimateは限定販売なので、普通に入手できるのはExpress RC8のみとなる。このExpress RC8は1年ぐらい前から存在する製品だが、流通が限られていて影の薄い存在だったところで、いきなり抜擢された感がある。

ということで、この機会に25GBモデルを買ってみた。

SunDiskのCruzer Titanium、Green HouseのPicoDrive F3と並べてみたところ。

厚みは同じぐらいだが、面積は二回りは大きい。日本での取扱元となるらしいアーキサイトのページを見ると、この中にSandForceのSF-1222が入っている。

初接続時にCrystalDiskInfo(5.0.3)で見たところ。使用歴は検査時のものか。

ThinkPad X61sのUSB2.0ポートに差した場合の性能をCrystalDiskMark(3.0.2 Beta)で確認した。テストサイズは1000MB。シーケンシャルアクセスはPC側にボトルネックがあるので、注目するのはランダムアクセス。

やはりランダムライトは別世界の速さ。比較のためにMSD6000をUSBケースに入れた場合が以下。

MSD6000でもWindows To Goは何の支障もなく動作することが分かっているので、Express RC8の性能は十分以上ということが分かる。

性能とは関係ないが、例によって青色LEDが眩しいのは何だかな。

[追記] USB3.0との関係

自分がUSB2.0ポートで試してきた経験から断言するが、Windows To Goの動作の軽さとUSB2.0かUSB3.0かは関係ない。関係があるのは主にランダムライトである。

ここで問題はランダムライトの高速なUSBメモリがごく限られていることで、世代が進むにつれてランダムライトの激しく遅い製品が主流になってきているらしい。


で、メーカーはUSB3.0のシーケンシャルアクセスの速度を前面に出し、ランダムライトにはあえて触れないようにしているようなので、何も考えずにUSBメモリを買ってきたらランダムライトの激しく遅い製品だった、ということが普通に起こると思われるので、(認識の問題とは別に)注意が必要。

3. Windows To Go ワークスペースの作成


Windows 8 RTM評価版はEnterprise版で、Windows To Goの作成ツールがコントロールパネルにあるので、RPまでのような手順を踏まずとも簡単にWindows To GoのUSBドライブが作成できる。


Express RC8、MSD6000、PicoDrive F3を差した状態(すべてUSB2.0ポート)で、先に認識のされ方を確認しておくと、Express RC8(USB3.0_RC8と表示)はローカルディスクの認識で間違いはない。

この状態で作成ツールを起動すると、自動的に検索されて表示される。

Express RC8が選択された状態ではリストの下に何も出てないが、MSD6000(MSD-SATA6025と表示)に移動すると、「このドライブを使用すると、Windowsのパフォーマンスに影響する可能性があります。最適な結果を得るには、Windows To Go対応のUSB3.0ドライブを使用してください。」と出る。

検索した際に何らかの確認をした結果だと思うが、検索はすぐに終わったし、何を確認したのかは分からない(実は上の参考ではExpress RC8の50GBモデルを使っているが、これと同じメッセージが出ている)。この状態でも問題なく作成はできる。

さらに下のPicoDrive F3に移動すると、今度は「これはリムーバブルドライブで、Windows To Goに対応していません。必要なハードウェア仕様を満たすデバイスを選択してください。」となる。こうなると先には進めない。

この後はイメージファイルを選択して(インストール用のISOファイルをマウントし、そのドライブを検索先に指定した)進めば、何事もなく作成は終了する。

結果は、まあ当然のごとく快適に動作するWindows To GoのUSBドライブが出来た。使用容量は約10GBだったので(イメージファイル次第で変わる)、25GBの容量で問題はなかった。

4. 終わりに


割と便利に使えそうな機能なので、昨年来追いかけてきたが、条件的に個人ユーザーには縁遠いものになってしまったのは勿体ないと思う。が、元からライセンス的には扱いが難しそうだったので、そこは何とも言えない。

まあ自分のExpress RC8はOS起動用として十分な性能があることが分かったので、RTM評価版の期限が終わったら他のOSで使ってみようかと思う。