ReadyBoostでWindowsを高速化
ReadyBoostとは
Windows Vistaの機能であるReadyBoost(レディーブースト)はUSBメモリなどのフラッシュメモリをリードキャッシュとして活用します。
フラッシュメモリはハードディスクよりもデータへのアクセス速度が速く(転送速度は遅い)、ハードディスクのように電源を切ってもデータが保持される不揮発メモリーです。
ハードディスクから頻繁に読み出される情報を、フラッシュメモリにキャッシュすることで、アプリケーションの起動などが高速化されます。メインメモリーを搭載できる上限が低いノートPCなどで活用することで、メモリ不足による大幅な性能低下を防ぐことができます。
ReadyBosstに使用できるフラッシュメモリは高速タイプが必要です。性能が足りないフラッシュメモリをReadyBoostに使用することはできません。容量は搭載しているメインメモリの2倍が最適です。ただしUSBメモリに作成できるファイル1つのサイズはFAT32の仕様である4GBまでなので、ReadyBoostのキャッシュファイルも4GB迄に制限されます。最小サイズは256MB必要ですので、それ未満のフラッシュメモリは使用できません。
プロパティのReadyBoostで「使用しない」を選択することでReadyBoostのキャッシュが削除されて通常のフラッシュメモリとして使用可能になります。ReadyBoostの容量を操作することで、通常のファイル保存に使用できる容量を確保することもできます。
ReadyBoostで使用するメモリは専用に用意することをおすすめします。
ReadyBoost専用とする場合は、コントロールパネルから「管理ツール」を呼び出し、「コンピュータの管理」を起動して、「ディスクの管理」を表示します。ReadyBoostのドライブを右クリックして、「プロパティ」を表示して、『READYBOOST』と入力します。こうすることで、このドライブの表示が「リムーバブルディスク」から「READYBOOST」に名称が変わり、ReadyBoost用のドライブであると分かり易くなります。
同じく右クリックで「ドライブ文字とパスの変更」を開き、登録されているドライブ文字を削除します。こうすることでこのドライブにはエクスプローラ等からアクセスできなくなり、ReadyBoostのみ機能します。
ReadyBoostでなぜ速くなるのか
ファイルのアクセスはシークタイムと転送速度で性能が決まります。
転送速度(シーケンシャル)はHDDでは50MB/s以上ですが、USB2.0接続では35MB/s程度になってしまいます。USBメモリになると速くても30MB/s以下で一般的なものは5~25MB/sの性能しかありません。
しかし、ReadyBoostはシークタイム(ランダムアクセス)の遅いHDDの代わりとなるものです。シークタイムとは別のファイルにアクセスするための移動時間を表し、HDDではモーターが回転してヘッドが動くという機械動作があるため、この性能は10年前と変わっておらず回転数によって7~20ms(ミリ秒)ほど必要です。フラッシュメモリでは機械動作がないため移動時間がほとんどなく1ms以下と高速です。
そのため、小さなファイルをたくさん呼び出す必要がある場合はフラッシュメモリが高速となります。
ReadyBoostではWindows VistaのSuperFetch機能により、呼び出される頻度の高い小さなファイルをフラッシュメモリに保存しておくことでHDDにアクセスするよりも速く必要なファイルを呼び出すことで高速化を実現します。
SuperFetchでは過去のWindowsの使用履歴を記憶することで、使い込むほどキャッシュ(一時的なファイル)の精度が向上してアプリケーションの切り替えなどでの待ち時間が減りスムースにWindowsを使用できます。
SuperFetchはメインメモリのキャッシュにも働くため、必要なファイルが既にメインメモリ上に読み込まれている場合はReadyBoostの効果はありません。
しかし、メインメモリ(DRAM等)は64bit環境はまだ整っていないため現在主流の32bit環境では最大で3GB程度しかメモリを使用できない制限があり、キャッシュ以外で必要となる容量も大きくキャッシュとして使える容量は少なくなります。しかも、メインメモリはシャットダウンや休止状態などで電気供給が止まるとデータが消えてしまいます。そのため、高速なキャッシュとして活用するには起動する度にHDDから呼び出す必要があります。
ReadyBoostで使用するフラッシュメモリは、最大4GBをキャッシュ専用として使用可能であり、電気供給が不要でデータを保持します。そのため、起動時や多くのアプリケーションを使用する場合など使い方によっては、2GB以上のメインメモリを搭載していてもReadyBoostの効果が得られます。
もちろん、メインメモリが不足していて増設が可能であればそちらを優先するべきです。ReadyBoostはメインメモリの代用ではなく、ランダムアクセス(バラバラに配置されているファイルへのアクセス)性能がとても低いHDDへの読み込みアクセスを少しでも減らして高速化するための技術です。ReadyBoostではメインメモリのようにファイルを開き編集して保存するといった動作などは行えないので、メインメモリの容量不足の代わりにはなりません。
ReadyBoostは読み出し専用のキャッシュなので、フラッシュメモリを取り外している場合でもHDDからファイルを呼び出すことで問題なくWindowsは機能します。
ReadyBoostが機能するためにはキャッシュとしてファイルをHDDから呼び出して記録しておく必要があります。キャッシュの構築や読み込みはReadyBoostを有効にしたフラッシュメモリを接続しているときに自動で管理されています。ReadyBoostを有効にしたときと同じように無効にすることで、ReadyBoostととしてのキャッシュファイルが削除されます。ReadyBoostのキャッシュファイルを直接削除するなどの操作はできません。
ReadyBoostで遅くなることも
ReadyBoostでは動作に必要な性能も決められており、4KBランダムリードが2.5MB/sec、512KBランダムライトが1.75MB/sec以上の性能が必要です。性能を満たしていないと使うことで反対に遅くなってしまうため、ReadyBoostを有効にできません。シーケンシャル(連続読み込み)性能はあまり必要ではなく、シーケンシャル性能が発揮される大きなファイルはHDDから直接読み込むのが高速なのでReadyBoostでは扱いません。
USB1.1接続では通信速度がとても遅いためReadyBoostとしては使用できません。また、カードリーダーに接続したフラッシュメモリもReadyBoostには使用できません。
ReadyBoostのキャッシュの構築自体はアイドル時(CPUの負荷などに余裕があるとき)に行われるので性能低下の原因とはなりませんが、性能に余裕がないPCでは遅く感じる要因になることが考えられます。
特にUSBメモリではUSBの規格自体が遅いものです。USBは低速なデバイスを簡単にたくさん接続することができますが、高速なアクセスが必要な機器の接続には向いていません。USB機器のアクセスにはCPUの負荷も高いため、CPUの性能不足で遅くなってしまうことがあります。
海外製の安いフラッシュメモリでは、ReadyBoost対応であってもシークタイムが一定ではなくバラツキがあるものや、容量によって性能が低下するものなど十分な性能が得られないものがあります。
また、一般的なフラッシュメモリはその仕組み上、書き換え可能回数が少ないため、品質が悪いものではすぐに壊れてしまうことも考えられます。シークタイムの高速なUSBメモリはファイルの並び順による影響はほとんど無いのでデフラグする必要がありません。デフラグはファイル移動のために書き込みと削除を繰り返すためフラッシュメモリの寿命低下に繋がります。