[windows] ブログ村キーワード

前回の、パソコンを高速化!その1~デフラグのススメの続きです。


前回の記事


まだ読んでない方は、最初に上の記事を読んで理解してくださいね。
分かっている前提で進めます。


デフラグの復習


前回、ハードディスクの仕組みについて、ちょこっと説明しました。

前回の例をもう一回みてみましょう!
ファイルAとファイルBから一部を抜き取って、

もと東大生もと社長の自由奔放ブログ Just do it now!-デフラグ-すぐにお片づけ

ここに、オレンジのファイルCを追加すると、

もと東大生もと社長の自由奔放ブログ Just do it now!-デフラグ-ファイルCを追加

こうなるので、デフラグして、

もと東大生もと社長の自由奔放ブログ Just do it now!-デフラグ-デフラグ後

こうしましょう!
っていうのが前回のお話です。

まぁ、めでたしめでたしなのですが、
デフラグなんてしないで、最初からデフラグされた状態を作れないでしょうか?

頻繁に行う必要があるデフラグ


そもそも、デフラグして、ファイルCを追加した状態で、
ファイルAとファイルBを戻すとどうなるのでしょうか?

もっと話を簡単にして、最初の状態で、ファイルAに1ページ追加すると
どうなるのでしょうか?

もと東大生もと社長の自由奔放ブログ Just do it now!-アロケーションユニットサイズが小さい場合

7ページ目はここに追加されるので、

もと東大生もと社長の自由奔放ブログ Just do it now!-アロケーションユニットサイズが小さい場合の結果

またデフラグが必要になります。


面倒ですね。
あらかじめ戻すことが分かっていれば、
普通はそのままにしておいて、一番後ろにファイルCを入れると思うんです。

じゃあ、そうしちゃいましょう!
っていうのが今回のお話。

クラスタサイズとアロケーションユニットサイズ


こんな感じで最初から余裕があれば、

もと東大生もと社長の自由奔放ブログ Just do it now!-アロケーションユニットサイズが大きければ

ファイルAに1ページ足しても大丈夫!

もと東大生もと社長の自由奔放ブログ Just do it now!-アロケーションユニットサイズが大きい結果

ですよね?
このOSがファイルを管理している最小単位がクラスタと呼ばれます。
クラスタのサイズをクラスタサイズといいますが、
Windowsでは、アロケーションユニットサイズといわれています。

NTFSのアロケーションユニットサイズの初期値


そして、Windows NT系のWindows 2000やWindows XPでは、
NTFSというファイルフォーマットの仕組みが使われていて、
何にも設定しないと、アロケーションユニットサイズはこうなります。

-512MB 1セクタ 512B=1KB
512MB-1GB 2セクタ 1024B=1KB
1GB-2GB 4セクタ 2KB
2GB-2TB 8セクタ 4KB
2TB-16TB 8セクタ 4KB
16TB-32TB 16セクタ 8KB
32TB-64TB 32セクタ 16KB
64TB-128TB 64セクタ 32KB
128TB-256TB 128セクタ 64KB

Windows 2000以降では、ハードディスクをフォーマットする際に、
アロケーションユニットサイズとして、クラスタのサイズが指定できるようになりました。
ただし、OSが入っているドライブ(通常はCドライブ)は、
アロケーションユニットサイズを変えると、Windowsが動かなくなるのでご注意を!

というわけで、Cドライブ以外にハードディスクの容量が空いている必要があります。

NTFSのアロケーションユニットサイズの変更方法


やり方は、

1.Administratorでログインします。
2.スタートメニューのすべてのプログラムにカーソルを合わせます。
3.スタートメニューのコントロールパネルをクリックします。
4.管理ツールをクリックします。
5.コンピュータの管理をクリックします。
6.左のメニューから記憶域のディスクデフラグツールを選択します。
7.右下のメニューで未割り当てのところを右クリックします。
8.新しいパーティションをクリックします。
9.次へを押します。
10.プライマリパーティションを選択して、次へを押します。
11.全部使いたくない方はサイズを変更して、次へを押します。
12.ドライブに分かりやすい文字をあてて、次へを押します。

パーティションのフォーマットのページが出ます。ここがポイント!

13.この真ん中にある、アロケーションユニットサイズを規定値から、
64Kに変更します。

14.次へを押します。
15.完了を押します。

後は、フォーマットが終わったドライブを使えばOK。

アロケーションユニットサイズとクラスタ・ギャップ


ちなみに、いいことばっかりなの?というとそうでもないです。
最初のファイルで説明したように、

もと東大生もと社長の自由奔放ブログ Just do it now!-アロケーションユニットサイズが大きければ

こんな感じでファイルを置いていくので、
余計なスペースがたくさん必要です。
アロケーションユニットサイズが64Kってことは、
テキスト1文字のファイルを保存しても、64KBのハードディスク容量が必要になります。

難しく説明すると、
1クラスタに満たないデータが書き込まれると、
クラスタ・ギャップという無駄な領域ができます。

容量が少ない方や、小さなファイルをいっぱい作る方にはあまりオススメしません。
写真やら、WordやらExcelやらで、普通にファイルを保存すると、
64KBなんて、すぐ超えちゃいますけどね。

反対にアロケーションユニットサイズが小さいと、
MFTというファイルとファイルを構成するクラスタの対応関係を示した
管理テーブルの領域が多く必要になり、
フラグメンテーションも発生しやすくなります。
最初に説明したとおりですね。

MFTとは?


ちなみにMFTについて詳しく説明するとこんな感じです。
難しくてわかんないと思ったら読み飛ばしてください。

WindowsのNTFSではMFTといわれる、
ファイル名や属性、タイムスタンプ等を
記録する固定長のレコードの領域が存在します。
ファイル名や属性、タイムスタンプ等を、1ファイルにつき、
1つまたは複数の固定長のデータとしてレコードに記録されます。

NTFSと従来のFAT,FAT32との最大の違いは、
データ自体もMFTに書き込まれることです。
MTFのサイズは1KB~4KBで通常は1KB。

データサイズが750B程度のファイルは、MFTに直接記録されます。
データサイズがこれよりも大きいファイルは、
データへのインデックスが記録されます。
インデックスが、1KBを超える場合には、複数のレコード領域が使用されます。
ボリュームをNTFSでフォーマットすると、
MFT用の領域として12.5%が割り振られます。
ファイル数が多く、MFTに入りきらないような場合は、
MFTは32レコードずつ、自動的に拡張していきます。

もしMFT自体がフラグメンテーションを起こした場合には、
ファイルの読み書きのパフォーマンスが極度に低下します。

説明終わり。

というわけで、今回はハードディスクをかなり無駄遣いしてます。
今は、ハードディスクも安いので、容量大きいのを買うと、
使い切ることなんてあまりないです。

こういう理由で、ハードディスクの容量いっぱいいっぱいに
ファイルを入れることができないんですね。

ここまで理解したうえで、FirefoxやらWindowsやらを見直すと、
まだまだ高速化できるんですね。

応用情報技術者を応用してみたもとでした。

おまけ
今、一番ホットな記事です。
Firefoxの仕組みを理解して重いブラウザをスピードアップ!

関連記事