ストレージ(SSDやHDD)の転送速度の改善について。
先日、HDDを高速化するならRAMディスクでキャッシュすれば良いと書きつつ、分かり易い例が無いか検索すると、Windows 7の機能で書込キャッシュの有効化やフラッシュのオフなどが存在すると判明。
知らなかったので切り替えて速度を比較。
書込キャッシュやキャッシュのフラッシュとは?
書込キャッシュとはデータを一時的に保存する事で、具体的にいうと、
- 読:SSD->書:HDD・・・HDDの書込速度に合わされてしまう
- 読:SSD->書:RAM->書:HDD・・・HDDへの書込を後回し
後者の場合のユーザの体感速度はSSDからメモリ(RAM)への書込の段階なので高速。RAMからHDDへの書込をユーザは意識する事は無い為、何か凄く速い気がするわけですな。
読込キャッシュという方法は無く、何故ならユーザが次に必要とするデータをエスパー出来るわけが無い為、一旦RAMへ書き実行してもHDDから直接実行しても似たようなものになってしまい意味が薄い。
キャッシュのフラッシュは、以下の太字部分
- 読:SSD->書:RAM->書:HDD
RAMのデータをHDDへ書込む事でメモリの容量を開放する感じの動作をフラッシュするというらしく、フラッシュせずそのまんまRAMにデータを置いたまんまで使うという方法も存在。
どうやらこれらの設定を変更する事で、HDDでも高速化が可能という話をいくつか見たのでやってみた。
書込キャッシュ無効やフラッシュオフで速度比較
おもむろにデバイスマネージャーへ。(スタートメニューのコントロールパネルから、ハードウェアとサウンド->デバイスとプリンター内のデバイスマネージャー)
Crucial~はSSDで他は全てHDD。
適当にSSDのプロパティを開き、先にキャッシュバッファーのフラッシュをオフとやらへ設定変更。
何が期待出来るかの元ネタはこちら。
そこで、ハードディスクのアクセスをキャッシュに一時保管する、拡張キャッシュ機能を有効にする事で、Windowsのパフォーマンスを向上させることが出来ます。
最初から有効になっていたけれど、画像による説明を見るとキャッシュのフラッシュをオフにすると良さそうなのでチェックを入れてみたという。
難点は突然の停電などには弱いそうな。
ただし、この機能を有効にした場合、ハードディスクへの書き込み速度が向上する半面、停電や予期せぬ事態によりシャットダウンしてしまうと、通常設定よりも多くのデータにダメージが加わります。
私のメインPCは、サーバーでも無い割に何故かUPS(無停電電源装置)を装備している為、停電しても10分くらいは内部電源にて戦闘可能なので問題無し。
SSDの速度をCDMのベンチマークにて比較。
変わらず。左は規定の設定、右がチェックを入れてオフにした状態。
SSDなので違いが出ないのか?という、何ら根拠無き思考にて3TBのHDDで試した結果は以下の通り。
ぶっちぎりで全然変わっておりません。何が悪いのか全く不明。
昔はこれで効果が有ったけれど、最近のストレージやメモリは高速なので差が出ないとかそういう事なのだろうか。
書込キャッシュを無効にするとどうなるのか?
個人的にWindowsの機能=疑うを基本としている為、この設定項目そのものに疑いを持ってみた。本当に書込キャッシュは有効になっているのか?というわけで、無効にしてみる。
左は有効、右が無効後。
疑ってしまい失礼。Write側に明らかな差。
というわけで、書込キャッシュの有効化は効果有り、キャッシュのフラッシュに関しては何がどうなのかサッパリ判らない程度に意味不明。
書込キャッシュ有効の場合も停電などでヤバいと書かれているものの、私のPCのストレージ4本は全て標準で有効になっておりました。UPSを検出出来るわけが無いのでこれまた原因不明。
おまけ:Crucial Storage ExecutiveでSSDを高速化?
これで終わると面白く無い為、書込キャッシュに関して調べていた際に発見したCrucialのうさんくさいツールも試してみる事に。Crucial製SSD限定、Intel Tool BoxのCrucial版+αのような感じ。
Crucial SSD用性能向上ソフト ~機能追加 - PC Watch
http://pc.watch.impress.co.jp/docs/news/20150603_705120.html
source:Crucial.com - Crucial Storage Executive tool download
インストールし実行すると標準ブラウザで展開。私の場合はChrome。
ファームウェア更新は調べていないので見なかった事にし、左のメニューから一時キャッシュなる項目へ飛び、一時キャッシュを有効へ。こちらもバッテリやUPSのような電源いきなり切れない状態で無ければ危険との注意書き有り。
PC再起動後、比較すると凄まじい差。右が一時キャッシュ有効。
SATA3は600MB/sが上限。なぜ2千とかふざけた数値になっているかは、メモリを経由しているわけで、なぜReadまで上がっているかはお察し下さい状態なのでスルーしましょうか。※CDMがメモリに書いてメモリから読んでいるだけ
RAMディスクとしては遅いものの、手軽にここまで高速化出来るのはSAMSUNG製のインチキ臭いツールに似ております。
source:SSD 840 EVO | Memory Storage
もう嫌な予感しかしない。
見せてもらおうかcrucialのSSDの性能とやらを
マジで速くなった気がするので比較、は上でベンチマークでの比較をしたのでどうするかはWindowsの起動時間の違い。※BIOS起動直後から、デスクトップ画面が表示される(ちゃらんちゃらんの鳴り始め)瞬間まで。
- 一時キャッシュ無し・・・15秒
- 一時キャッシュ有効・・・15秒
crucial「はっ、速くなったのは、シーケンシャルなんだからね!」
ならばデータコピー実験だというわけで10GBのファイルを捏造。
参考:Tech TIPS:Windowsで巨大なサイズのファイルを簡単に作る方法 - @IT
256GBのSSDにも関わらず、空き容量がこの時点で50GBくらいになってしまい、無駄に10GB書込x2回とか嫌過ぎるものの、シーケンシャルなら期待大。
新世紀クルーシャリオンの幕開けになりそうな予感がしたけれど、結果をグラフにしたり%出すほどでも無いと思うので文字で。
- 一時キャッシュ無し・・・54秒
- 一時キャッシュ有効・・・53秒
有効を先に計測した後に無効へ変更し測った為、もしかすると無効になっていないのか?と疑いCDMでベンチすると一時キャッシュ機能は無効時のスコア。もはやアンタばかぁ?である。
CFD販売「さ・・・、3年保証なのでお手柔らかに(白目)」
そういう問題ではございません。2千メガバイト/秒はどこ行った。
高速化はSSDへ換装、更なる高速化はPCIe接続?(まとめ)
冒頭付近で書いた通り、書込をキャッシュする事は可能でも読込はHDDにデータが存在しつつHDD側に予知機能でも無ければキャッシュは不可能。
RAMディスクという手も有るけれど、揮発メモリへの書込はデータの退避に失敗するとデータが消滅してしまう上、私に言わせるとSSDで充分速いと体感しており、SSD導入後はRAMディスクを使っておりません。
SATA3接続のSSD以上に高速なPCIe接続も最近は普及し掛けているものの、ベンチマークのスコアは凄まじい、しかしデータのコピーなど実用面ではSATA3とそう変わらないという結果が出ており、どこかにボトルネックが有るのでしょう。
ハイブリッドHDDもそう速くは無く、体感で明らかにSSDより遅いので意味は薄い。おそらく書込はキャッシュ可能でも読み取り速度が遅いのでそう感じるのでしょう。
HDDが遅いならば素直にSSDへの換装をお勧め。逆の考え方をすると、転送速度がHDD程度で良い、例としてデータ保存用ドライブなら普通のHDDで良いと思う。
>最近のストレージやメモリは高速なので差
>が出ないとかそういう事なのだろうか。
[PC処理→キャッシュに保存→HDD書き込み]
だったらCDMで測れるの?
詳しく知らないけどキャッシュが一時保管場所なら、
繰り返し同じファイルを操作しないと
体感の違いが分からないのでは?
もしくは、細かいデータが多数個の場合とか
なんかの条件があるんじゃない
> [PC処理→キャッシュに保存→HDD書き込み]
> だったらCDMで測れるの?
なぜ測る事が出来ないのか説明してくれなければ意味不明。また、その後の文章は私には理解出来ないので分かり易く願いたい。何か条件が有ると思われるなら具体例を提示して貰えると実験出来るかも知れない。要するに全体的に意味が解らない。
#本文へ追記:改めて記事を読み返してみると、物理メモリ8GBで10GBのファイルをコピーは意味が無かったかも知れないと思い、先ほど3GBのファイルでコピーを試したけれど誤差のようなもの。ベンチ騙しのインチキツールなのか、何かがボトルネックなのか。
>書込キャッシュ
「Windows高速化」とか「設定を見直して快適化」とか系の記事や雑誌で、よく目にしましたね。特にまだHDDの速度が遅いXP時代に。合わせて「HDDの転送モードがウルトラDMAのモードいくつか確認する」なんぞも定番でした。
他だと「ファイルのインデックス作成を止める」とか「ファイルの更新日時を更新しない」とか、涙ぐましい方法も記憶にあり。
>書込キャッシュやキャッシュのフラッシュとは?
いわゆる「ライトスルーキャッシュ」と「ライトバックキャッシュ」でしたっけ。この手の書き込みキャッシュ容量(この場合はバッファですが)を増やす事でファイルコピーを高速化するソフトとしては、Fire File CopyやFastCopyなどのファイルコピーソフトが有名ですね。
>フラッシュをオフにする
このフラッシュ設定、何時から加わったのでしょうかね。調べる限りではVista時代にはもうあった様ですが。ここら辺の設定は、変更してもパフォーマンスが上がることは無かろう、と高を括っていたため全く知りませんでした。
>書込キャッシュを無効にするとどうなるのか?
書き込みキャッシュと言うだけあって、本当に書き込みにしか効果がない機能なのですね。マルチスレッド(Q32T1)よりシングルスレッドの方が影響は大きいようで。書き込みキャッシュはHDDの能力ではありませんから、こちらの方が本来の性能とも言えますね。
>私のPCのストレージ4本は全て標準で有効になっておりました
記憶が確かなら、昔から書き込みキャッシュは標準で有効なはずですよ。ちなみに私の使用PCでは、棒PCでさえ有効です。
Seagate:Windows 2000、Windows XP、および Windows Vista で書き込みキャッシュ機能を無効にする方法について
http://knowledge.seagate.com/articles/ja/FAQ/187751ja
「この機能は、デフォルトでチェックが付いています(つまり、有効になっています)」
ITmedia PC:サクッとおいしいVistaチップス 33枚め:VistaのHDDキャッシュ設定を変更して高速化する (1/2)
http://www.itmedia.co.jp/pcuser/articles/0802/01/news035.html
「Windows Vistaの場合、HDDのキャッシュはライトスルーキャッシュのみ有効で、ライトバックキャッシュは無効になっている」
シトリックス:ストレージデバイスドライブ使用時の書き込みキャッシュの無効化によるパフォーマンスの向上
http://docs.citrix.com/ja-ja/provisioning/7-1/pvs-server-wrapper/pvs-ha-write-cache-disable.html
>PC再起動後、比較すると凄まじい差。右が一時キャッシュ有効。
せっかくなので、我が遅いSSDとマッハドライブのコンボも紹介しておきましょうか。
マッハドライブONとOFFでCDMを計測
http://ux.getuploader.com/shominA/download/32/MachONOFF.png
マッハドライブによる書き込み頻度削減効果…97%くらい
http://ux.getuploader.com/shominA/download/33/saving.PNG
>一時キャッシュ無し・・・54秒
>一時キャッシュ有効・・・53秒
1日1回で1秒、1年で365秒。3年で20分くらいの時短ですよ時短。
>2千メガバイト/秒はどこ行った。
メモリを32GB積んでキャッシュに20GBくらい割り当てればOKです。見かけ上の速度は。
> [PC処理→キャッシュに保存→HDD書き込み]
> だったらCDMで測れるの?
> なぜ測る事が出来ないのか説明してくれなければ意味不明。
私は詳しくpc処理知らないから、
あいまいな発言になってしまって悪いし、
これから書くのも推定程度でしかない。
CDMでたぶん測れているのだろうけど、
[PC処理→キャッシュに保存→HDD書き込み]で
HDD書き込みまでをCDMで測ってるんだったら
「PC処理→HDD書き込み」とほぼ同等の時間になるのでは?
たぶん、CDMはHDD書き込みの時間測定してるに過ぎないから。
キャッシュに保存を活用した測定方法でないと
違いが分からないんじゃ無いかと思った。
キャッシュに保存したデータを読むから体感が早く感じるのであって、
1度きりのデータ移動ではあまり差がないはず。
データ移動しました。
そのデータを読みに行くときに
わざわざHDにアクセスせずにキャッシュに保存先からアクセスするから
すばやくデータが読み込める状況になってるんじゃないかと思う。
>なんかの条件
あんまし考えてなかったなw
例えば、読み込みに時間がかかるファイルの起動時間を調べるとか
それも連続で起動時間をはかる。
2回目以降でないとキャッシュ保存の価値がない
具体的にどんなファイルがいいか分からないけどね。
キャッシュ容量がどれくらいか知らないけど、
キャッシュ容量内ならたぶん早くなるんじゃないかと思う
>書込キャッシュ
書込キャッシュかやっぱ理解できてないは、
私のコメント忘れてください。
>2回目以降でないとキャッシュ保存の価値がない
私の環境だと、画像編集や動画編集のソフトは、2回目以降からの起動が劇的に速くなりますね。具体例だと
PaintShop(画像編集ソフト)
初起動:15秒
2回目以降:5~7秒
PhotoZoom(画像編集ソフト)
初起動:6秒
2回目以降:3秒
FreeMakeVideoConverter(動画編集ソフト)
初起動:6秒
2回目以降:3~4秒
スーパーマップル(地図ソフト)
初起動:10秒
2回目以降:5秒
このくらいで約半分。特にWindows7以降から「不要なDLLはOS起動時に読み込まず、起動速度を上げる」仕様のようですから、初起動に時間が掛かるのはデフォやも。