2014/09/26

ReadyBoostとフォーマットの関係

Windows 7 の ReadyBoost という機能を活用してみようと思って安い USB フラッシュメモリ( 東芝 UHYBS-008GH)を買ってきて試しています。

しかし、いろいろ試した結果、ReadyBoost の効果はほとんど体感できませんでした。PC のメモリは 2 GB あるのですが、これだけメモリがあれば十分なのかもしれません。古い PC なので CPU の性能が低く、ReadyBoost の処理のために余計な負荷がかかってかえってパフォーマンスに悪影響を与えている可能性もあります。

安物の USB メモリだからかもしれませんが、転送速度は ReadyBoost の基準をどうにか満たしている程度でそれほど速いわけでもなく、CrystalDiskMark で計測する速度も安定せず、早かったり遅かったりしています。PC 側の USB ドライバか何かの不具合かもしれませんが、時々 USB メモリが認識されなくなってしまうこともあります。

いずれにせよかなり不安定で、パフォーマンスが改善されるどころかかえって支障が出てしまっています。

USB メモリを品質の良いものに変えれば改善するかもしれませんが、あまり期待はできません。ReadyBoost の活用はほぼあきらめました。

今回の ReadyBoost の検証にあたって、USB メモリの転送速度を少しでも改善しようと思ってフォーマットの仕方をいろいろ変えて試してみたのですが、いくつか気になった点がありました。

フォーマットの種類には NTFS、FAT32、exFAT の 3 種類があります。USB メモリに適しているのは FAT32、exFAT の 2 つになると思います。どちらでフォーマットしても大して速度や性能には違いはないのですが、exFAT の方が ReadyBoost 用により多くの領域を確保することができます。

使用していた USB メモリの容量は 8 GB だったので、その容量をフルに使用するためには exFAT にする必要があります。

ただ、容量確保の際に気になったのは、USB メモリや HDD などのストレージ(記憶装置)は使用領域が容量を満たす割合が増えるほど速度が低下するということです。大体 50 %を超えると速度の低下が顕著になり始めるそうです。

だとすると、ReadyBoost のために USB メモリの容量全域を確保してしまうと、それだけで速度が低下してしまうのではないでしょうか? その場合、8 GB の容量があっても ReadyBoost 用には半分の 4 GB 程度にしておくのが最適だということになるので、フォーマットは FAT32 でも十分ということになります。

ReadyBoost 用に 8 GB の容量全域を確保しても速度に影響はないという仕組みであれば exFAT の方がよいといえるのですが、これについては今のところ不明です。

それからもう一点、フォーマットの際には exFAT などの形式の他にアロケーションユニットサイズ(クラスタサイズ)というものを指定することができます。ファイルを格納する領域の最小単位みたいなものらしいのですが、この設定によっても速度が変わってくるという説もあります。

ReadyBoost では HDD が苦手とする小さいサイズのファイルをフラッシュメモリに処理させることで高速化させています。フラッシュメモリは HDD に比べれば小さいサイズの読み込みが高速だからです。

そのため、ReadyBoost に使うフラッシュメモリのフォーマットには小さいサイズのアロケーションユニットサイズを指定した方が効率がよさそうに思えます。

8 GB の USB メモリの場合、FAT32 でフォーマットすれば標準で 4 KB(4096 バイト)のアロケーションユニットサイズになります。exFAT の場合は 32 KB が標準でかなり大きなサイズになっています。

exFAT でフォーマットするならアロケーションユニットサイズを標準のままにせず 4 KB などの小さめのサイズに指定した方がいいのでしょうか?

しかし、ここでも疑問が生じます。そもそも FAT32 で 4 GB 以上の領域を確保できないのは FAT32 の制限で 4 GB より大きなサイズのファイルを扱うことができないからです。つまり、ReadyBoost で領域を確保するということは、その領域のサイズの巨大なファイルを「1つだけ作成する」ということではないでしょうか?

だとすると、アロケーションユニットサイズを小さくする意味はなくなり、逆に可能な限り大きくした方が効率がいいということにはならないでしょうか?

私の PC でフォーマットすると、FAT32 の場合は最大で 64 KB のアロケーションユニットサイズを指定できます。それでも標準の 4 KB に比べればかなり大きくなりますが、exFAT の場合は何と!最大で 32 MB(32768 KB)の指定が可能です。

仮に 8 GB の容量がある USB メモリに exFAT で 32 MB のアロケーションユニットサイズを指定した場合、格納できるファイル数はわずか 250 個程度ということになってしまいます。巨大な動画ファイルのみを保存するような用途なら問題ないかもしれませんが、普通の使い方では無駄が多く、すぐに足りなくなってしまうでしょう。

しかし、ReadyBoost に必要なのはたった 1 つのファイルのみです。250 個も必要ないのです。それなら、アロケーションユニットサイズも最大値の 32 MB でよいのではないか?と思うのです。

試しに exFAT、アロケーションユニットサイズ 32 MB でフォーマットした USB メモリで ReadyBoost を有効にしてみましたが、特に問題なく使えます。パフォーマンスモニターで ReadyBoost のキャッシュの状態を確認してみても、標準的なフォーマットの場合とほとんど違いは見られませんでした。つまり、250 個以上のファイルがキャッシュされていると考えられるので、アロケーションユニットサイズは関係ないということになります。

はたして、どのようなフォーマットにしたらもっとも効率よく ReadyBoost を活用できるのでしょう?

そもそも、こういうことを気にせず PC 初心者でもお手軽にパフォーマンスアップできるのが ReadyBoost の本来の設計思想だとは思いますけどね。

気になる人はぜひ試してみてください。

1 件のコメント:

  1. 気になる点について記述されており、疑問点についてのコメント、が欲しくなりました。はてな?や教えてgooなどで機会があればサポートに期待したいと思います。

    返信削除