USBの初期化時などに見かける「アロケーションユニットサイズ」。アロケーションユニットサイズとは何なのか全くわからない人もいるでしょう。不適切なものに設定されている場合のデメリットや、最適なサイズとは、またシステム上のサイズ確認する方法を含め解説していきます。
アロケーションユニットサイズとはどのようなものか、全く知らない人もいれば、名前だけは見たことがあるという人もいるでしょう。まずはアロケーションユニットサイズとは何なのかについてを解説していきます。
アロケーションユニットサイズというのは、ファイルを管理する単位を示していて、1つのファイルを保管するための最小単位を示します。
アロケーションユニットサイズとはどんな時に必要なものなのかというと、データを保存する際、その保存領域を利用するために必要なものです。
データの記録に利用する最小単位は「セクター」と呼ばれ、アロケーションユニットサイズの中にいくつもの「セクター」がある状態です。
このセクターで区切るとファイルの読み込みにいくつかのセクターにアクセスする必要が出ます。
そのため、それを防ぐため、いくつかのセクターごとにアロケーションユニットサイズを設定し、そのアロケーションユニットサイズへアクセスするという方法でファイルの読み込みを行うのです。
なお、アロケーションユニットサイズはクラスターサイズとも呼ばれます。最小単位を数える際に1クラスタ、2クラスタと数えるためです。
アロケーションユニットサイズ(クラスターサイズ)は荷物を詰める1つのロッカーのような役割を果たしています。データを保管するWindowsなどのシステムのハードディスクの中にはそういったロッカーがいくつもあって、その中にデータを保管しているのです。
イメージとしては下記のような形です。四角の1つ1つがシステムに設定されているアロケーションユニットサイズ(クラスターサイズ)で、それらがたくさん組み合わさって一つの保存領域になっているわけです。
アロケーションユニットサイズにはそれぞれファイルを格納できます。容量が1つのアロケーションユニットサイズ(クラスターサイズ)を超えると別のアロケーションユニットサイズ(クラスターサイズ)を利用して保存する、という方法をとって保管されます。
アロケーションユニットサイズ(クラスターサイズ)で比較をおこなってみましょう。例えば8KBのものをシステム内に保存したとします。この場合、4KBのアロケーションユニットサイズ(クラスターサイズ)を2クラスタ利用することになります。
逆に、アロケーションユニットサイズ(クラスターサイズ)が16KBの場合は1クラスタ利用するだけで8KBのファイルの保存に事足りることになります。図を比較すると余裕の有無がよく分かりますね。
アロケーションユニットサイズ(クラスターサイズ)によって保存に要するクラスタ数が異なってくるわけです。最適なサイズに設定されていれば、この読み込みをシステムでもスムーズに行うことができるわけです。
ファイルの実例で確認してみましょう。そのファイル自体が4KB未満でも、上記画像のようにディスク上のサイズとしては4KBと表示されます。ディスク上のサイズ=ハードディスクの消費量です。
余談ですが、Windows8以降は、小さいファイルはMFT(Master File Table)に入るシステムになっていますので、アロケーションユニットサイズを消費していないことにより上記のように0バイトと表示されることもあります。
アロケーションユニットサイズ(クラスターサイズ)は、不適切な値で設定されていると当然デメリットが生じます。なお、サイズの変更はフォーマットをおこなうことで可能です。
アロケーションユニットサイズ(クラスターサイズ)が不適切な場合どうなるかについては、そもそもアロケーションユニットサイズ(クラスターサイズ)のサイズ変更をおこなうとどういうことになるのか、ということを理解する必要があります。
アロケーションユニットサイズ(クラスターサイズ)のサイズが違うとどうなるかというところから分からないと思いますので、そちらも含めて簡単に確認していきましょう。そこからそのサイズが不適切な場合どうなるのかの確認もしていきます。
基本的に、アロケーションユニットサイズ(クラスターサイズ)の大きさでファイルの読み書き速度が変わります。アロケーションユニットサイズ(クラスターサイズ)が大きければその分ファイルの読み書き速度が上がるのです。
USBメモリなどはより顕著に変わってきます。Windows OSなどのシステムのハードディスクなどは影響がないことが多いため、こちらはそういった外部ストレージにとってより影響が大きいものだと言えます。
ファイルのサイズが大きくてアロケーションユニットサイズ(クラスターサイズ)を複数活用する場合、あまりに不適切な値になっていると読み書き速度が大きく変わってくるのです。
また、あまり細かくアロケーションユニットサイズ(クラスターサイズ)を分割すると、そのファイルの大きさが大きいほどファイルを利用する際にバグが起こりやすくなります。詳細については後述します。
それならアロケーションユニットサイズ(クラスターサイズ)が大きいほうが良いのでは、と思うかもしれませんが、アロケーションユニットサイズ(クラスターサイズ)が大きい場合はストレージの使用効率が変わるのです。
こちらは保存可能な量が変化してきて、不適切な値であればあるほど保存できるファイルの量が変わってきます。最適なものにしてあれば適切にストレージを使用することが可能です。
これは、1つのファイルがどれほど小さくても、そのファイルの保管方法として少なくとも1クラスタ利用することになるためです。この件の詳細も後述しますので、そちらで確認を行いましょう。
1 / 4
続きを読む