2019/06/09
アロケーションユニットサイズの話です。wararyoです。
先日、250GBのSSDから500GBのSSDに移行しました。
移行してる時にトラブルは起こりました…
コピーしてるだけなのに容量が足りない!?
解決のキーワードはアロケーションユニットサイズでした。
sponsored link
とりあえず解決したい人向け
エクスプローラー上で移行先のSSDを右クリックし「フォーマット」を選択、
「アロケーションユニットサイズ」の値を128 キロバイト ~ 512 キロバイト程度の小さな値にしてフォーマットしてください。
アロケーションユニットサイズって何?
SSDやHDDは読み書きを高速化するために記憶領域を幾らかの単位でグループ化して扱っています。
そのグループ化する単位がアロケーションユニットサイズです。
クラスターサイズとも言われるようです。
32KBだったり32768KBだったりと様々な値をとります。
問題は、1つのアロケーションユニットに複数のファイルを入れることができないということです。
なので例えば、アロケーションユニットサイズ1024KBのストレージに800KBのファイルを入れると、224KBのデッドスペースが生じます。
このデッドスペースのことをクラスターギャップと呼びます。
この現象はお手元にある適当なファイルのプロパティを覗いても実感することができます。
「ディスク上のサイズ」を見てみると、アロケーションユニットサイズの倍数になっているはずです。
アロケーションユニットサイズを大きくすると何が起こるか
- 読み書きが早くなる
- 使えない領域が増える
速さと容量のトレードオフです。SSDに入れるファイルに合ったアロケーションユニットサイズを指定することでSSDを快適に利用することができます。
具体的にどれくらいの値にするべき?
- 動画など大きなファイルばかり入れがちなら32768KBなど大きい値
- テキストファイルなど小さなファイルをたくさん入れる場合は256KBなど小さい値
- ファイルの書き込み/削除を頻繁にするなら気持ち大きめの値(一般に読み込みより書き込みの方が遅いので)
僕の場合は、1秒以下の音声データを多数格納し、かつファイルの書き込みはめったに行わないので128KBにしました。
対策後
無事に移行前のSSDと同じ使用容量を示すようになりました。めでたしめでたし。
アロケーションユニットサイズの変更にはフォーマット、つまり中身の全消去が必要です。
最近のSSDは初期設定では大きめに設定されがちなようです。
SSDを買った時にまず初めに確認する習慣をつけると幸せになれるかもしれませんね。