toddler’s diary

以前は研究にあまり関係ない雑談・2023年4月から本を通じた自分の振り返りやってます

ディスクアクセスパフォーマンス

なんか最近の記事はパソコンがらみばかりだが,重い計算機実験をやらせる予定なので安定性とパフォーマンスをちゃんと確保しておきたい.


というわけで今日の話はディスクアクセスのパフォーマンスの話.
ただしパフォーマンスチューニングとかきりがないので適当に切り上げるというのも必要かなとは思うので話半分に読んでいただきたい.


Windows の場合とりあえずディスクパフォーマンスを向上させるにはデフラグでしょう. いろいろなマシンでいろいろなソフトを使っていますが,フリー版では 以前から使っている「すっきりデフラグ」のほか,ここ数年使っている defraggler というソフト. デフラグRAID だったり ssd だったりするとあまり意味がなくなる意味があるのだが,defraggler は ssd で効果のある「空き領域のデフラグ」というオプションがある.
有料のものでは Diskeeper というのがあり,これは常時監視してデフラグを防ぐもので,RAID でも ssd でもかなりディスクアクセスの安定性が増すような体感はある.


ところが最近トラブっていた Dell のマシンは Diskeeper を入れているにもかかわらずプチフリーズっぽい症状を示しており,ベンチマークソフトの hdbench で見ると読み込みは問題ないが書き込みが異常に遅い.
参考値: Read 148621 Write 21205 FileCopy 5026 (走らせるたびに結構値が変動するのであくまで参考程度)

いろいろ調べてみると RAID5 (しかもこのマシンは3台のHDDで RAID5 という無理技^^;) にしていると書き込みが遅くなるらしい.
そこでとりあえず Diskeeper の常時デフラグを夜間のみに限定するようスケジュールを変えたら体感速度も hdbench の結果も少しだけ改善したが,やはり遅いのに変わりはない.やはり RAID5 は厳しいのか.
参考値: Read 198065 Write 28116 FileCopy 3742

もう一つやったのは RAMDISK の導入. Windows7 であれば ReadyBoost というハードディスクキャッシュを増やすやりかたがあるようだが,このマシンは XP なのでそれはできない(有料のもので eBoostr というものはあるらしい). RAMDISK は Gavotte Ramdisk というのが評判がよさそうなのでそれを導入. 考え方はシンプルで,Windows XP では 3G 程度までしかメモリとして認識しないので,それ以上積んでいる場合にその部分をディスクスペースとして使うことで超高速ストレージを実現するというものである.


RAMDISK は電源オフにすると設定が消えたりするため,それを防ぐためのいろいろ高度な技もあるようだが,RAMDISK は以前システムが不安定になって苦い思いをしたことがあるのでとりあえずシンプルな設定で様子を見る. 種々のテンポラリやキャッシュを RAMDISK に置いたらプチフリーズはかなり解消された. 当然ながら hdbenchRAMDISK を測定したら目盛りが振り切れるぐらいの性能が出ていた^^. 
参考値: Read ?023529 Write 200000 FileCopy 93389 (Read と Write は6桁フルに使っているのでその上は不明)


実験プログラムもとりあえず RAMDISK に書き込んで,後からディスクに書き写す方が相当高速になりそうだ.