web-dev-qa-db-ja.com

ランダムI / Oの最適なクラスターサイズ

NANDストレージ(SDカード、メモリースティック)の答えに特に興味があります。

私はWindows7ラップトップを持っており、VMWare内で2つのVMを実行し、ホストOSで複数のプログラムを実行しています。 VMディスクアクセスは非常にランダムであり、ReadyBoostで16GBのメモリスティックを使用することでシステムのパフォーマンスが大幅に向上しました。フラッシュをexFATでフォーマットして、 16GBのsfcacheファイル。32MBのクラスターサイズを使用しましたが、これが最適かどうかはわかりません。

クラスターサイズについての私の理解では、クラスターサイズが大きいと、小さいファイルのスペースが無駄になりますが、ほとんどの場合大きなファイルがある場合は、読み取り速度が向上し、ファイルテーブルの使用量が少なくなります。ただし、ReadyBoostはランダムI/Oにのみ役立ち、シーケンシャルI/Oには役立たないことに気付きました。これにより、ランダムI/Oには小さいクラスターサイズが適しているのか、シーケンシャルI/Oには大きいクラスターサイズが適しているのか疑問に思いました。

私は16GBのサムドライブでいくつかのIOテストを実行しました。

画像 クラスターサイズが1kB、4kB、8k、32MBの場合の結果を示します。

enter image description here

enter image description here

enter image description here

enter image description here

1kのランダムI/O速度が最低で、4kの速度が最高でした(シーケンシャルI/Oの場合は8kよりわずかに遅いだけで、おそらくエラーマージン内です)。これらの結果をどのように解釈するかわからない。メーカーがデフォルトのWindowsアロケーションユニットサイズに合わせてデバイスを最適化することは可能ですか?

4
Jim

標準のフォーマットからの逸脱は、信頼性とサポートの面ですぐにではないにしても、ほとんどの場合、将来的に問題を引き起こすので、私は個人的に気にしません。これらのタイプのもののコードパスは、標準の一般的なケースほど十分にテストされているとは限らないため、標準からの逸脱は十分に検討する必要があります。

本当に必要な場合を除いて、特に長期保存したいデータの場合は実験しません。

1
mdpc