NTFSのアロケーションユニットサイズ(クラスタサイズ)を模索した。
OSをクリーンインストールしなおした。その2。
アロケーションユニットってのはNTFSのクラスタみたいなもんだが、こいつが結構厄介。以前、大きくするとパフォーマンスが向上するという話を聞いて試してみたことがあるのだが、確かに効果はあった。特に1つのフォルダに大量のファイルが存在する場合、ファイルの列挙速度が段違い。ただしこれは、断片化してないから早いという可能性も(断片化0%の状態で比較しても速度が段違いなので、おそらくアロケーションユニットサイズの効能)。そして、他の性能に関しては微増程度。そう考えると、容量が少なくなるデメリットとトレードオフできてない気がするわけだ。
でまあ、いろいろ調べた上での私の結論はっつーと。
- 基本的に(ほとんどの環境における)デフォルト値の4KBで問題ない。
- 4KB以下ではNTFS圧縮を利用でき、節約できる(環境にもよるが、1TBのHDDで5GB程度儲かる)
- CPUが高速なら、NTFS圧縮の計算コストをほぼ無視できる。
- CPUが特に高速なら、NTFS圧縮ONの方がパフォーマンスが向上する(機械的なロスの方が大きい)説? --> それなりの環境でもやっぱりONのがやや遅い。現実は甘くはなかった。
- 断片化はそれなり。それによるパフォーマンス低下の可能性を考慮すべき。
- 16KBより上はクラスタギャップが酷すぎるため、最も現実的な数値。
- それでも多少のクラスタギャップは出る+NTFS圧縮が使えないことによる容量の無駄使い。
- 断片化は最もしにくい。
- 前述のようにクラスタギャップは酷い(環境にもよるが、1TBのHDDで数十GB以上)
- ベンチマークでは16KBの方が優れていたという情報も。
- この中では、容量に関しては4KB+NTFS圧縮が一番お得。
- 容量を犠牲にしても得るものが少ない(大量のファイルを扱う時に速い、くらい)。
- やっぱりデフォルト(4KB)で十分。
うーん結論が面白くない。デフォルトとか面白くないなー!(ぬへ。
まあ私は、時間のかかるデフラグが嫌いなので(好きなやつはいないと思うが)、試しに16KBにしてみた。UPC速度にも自信がないしな!(今やPentium4なんてレガシーだからなぁ……)
16KBだとデフラグがかなり高速化されて、デフラグするのが楽しく感じる(ぬへ。
うーむやっぱり16KBじゃなくて4KB+NTFS圧縮でいい気がしてきた(ぐへー。
ちなみにうちの環境(P4 2.8GHzというレガシーな)でNTFS圧縮入れると、転送速度が1/3くらいになりますな。普通に使う分には困らんけど。
大容量HDDがアホみたいに安い今のご時世、容量よりスペックを優先したいと思ったなら、アロケーションサイズ云々よりRAID環境(RAID10あたり)を検討すべき。大容量化で、HDDが破損した時の被害も増大しているのだし……。