2011年01月20日

Gavotte Ramdisk で OS管理外メモリ領域を活用

過去2回のエントリで記したように、自宅のメインマシンをMP915からCore 100HTにアップグレードし、WinXPをインストールして稼動を開始しました。
私の使用状況では、メインメモリが1GBから4GBに大幅増加したのが非常に大きく、快適なPC環境となりました。ただし、私の使用したWinXPは32bit版です。32bitOSではアドレス空間は理論上最大4GBであり、実際WinXPの場合は3.2GBまでしか扱えません。残り0.8GBをどうにか有効活用できないかと調べてみると、このOS管理外メモリ領域をramdisk化できるソフトがあることがわかりました。この領域を、OSやアプリケーションソフトがバックグラウンドでアクセスするディスク領域として使用すれば、より快適な使用環境になることが期待されます。
ramdisk化できるソフトとしては、いくつかのメモリメーカがフリーで提供しているものがありますが、いずれもそのメーカのメモリ製品を使用していないとソフトも使用できないようです。そこで、そのような制限のないフリーソフトであるGavotte Ramdiskを使ってみることにしました。

Gavotte Ramdisk については、有志によるまとめサイトがあるので、それをじっくり読めば比較的簡単にramdisk化ができます。有志の皆さんの努力に感謝いたします。さて、私の WinXP + Core 100HTの環境では、以下のように導入を進めました:
(1)マイコンピュータのプロパティで「物理アドレス拡張」と表示されているか確認。私の当初環境ではこれが表示されていなかったので、起動オプションに /pae を追加して再起動し、「物理アドレス拡張」と表示されたことを確認。
(2)Gavotte Ramdiskアーカイブ内の ram4g.reg を実行。
(3)ramdisk.exe を実行。領域サイズ指定はデフォルトの16MB指定でも、自動的に最大限のOS管理外メモリ領域が確保される。
(4)タスクマネージャで、物理メモリ領域がramdisk化の後でも減っていないことを確認。ramdiskのプロパティにより、OS管理外メモリ領域が最大限確保されていることを確認(私の場合700MB弱)

一連の工程で私がはまったのは、ram4g.reg実行後に自動的に再起動がかかるようなのですが、再起動までに結構時間があるので、それに気づかずにramdisk.exeを実行した結果、OS管理外メモリ領域でなく管理内領域が確保されてしまい、何回か試行錯誤する、ということがありました。そのような場合は、ramdiskをアンインストールして最初からやり直せば問題なくできると思います。

無事ramdisk化に成功したら、次は、PCの再起動時に自動的にramdiskを作成して所望のディレクトリを作成する、などの機能を持つバッチファイルを作成し、1回実行しておきます。これも、まとめサイトにいくつかの例が載っているので、自分の必要な内容を取捨選択して作成、実行しておけばいいでしょう。
ところで、このバッチファイルで使われているコマンド、例えばFORMATコマンドやCACLSコマンドは、対話的入力を要求するので、そこでキーボード入力があるまで入力待ちとなり、自動で実行されません。これを解決する一般的な方法としては、例えばYという1文字を入力する場合なら、そのコマンドの前に「echo Y|」を追加してパイプで文字入力する方法があります。また、複数の入力を要求される場合は、それらの入力文字列を書いたテキストファイルを用意し、これを当該コマンドに対し入力リダイレクトで指定する、という方法があります。さらに、FORMATコマンドの場合は、/Xオプションでアンマウントすることにより、ラベル名を聞かれなくなり、さらに隠しオプションの/Yにより全ての[Y/N]という質問に対してYと答えたのと同等の作用があり、これらのオプションで実行の自動化が可能です。

さて、ramdisk化したOS管理外メモリ領域をどう活用するかについてですが、私の場合、以前のエントリでも書いたように、ブラウザFirefoxを何枚も開き、その1枚ごとにタブ10個ほどのページを開いて次々に読む、というようなことをしているので、このブラウザのキャッシュ領域をこのramdiskに割り当てれば、さらにブラウズの快適度が増すのでは、と考え、さっそく実行してみました。
すると確かに、一回アクセスしたページに戻るときなどは、表示が速くなっているようです。一方、ブラウザをずっと使い続けていると、ramdisk領域の空きがなくなり警告が出るようになりました。
調べてみると、ブラウザのキャッシュに指定したramdisk内ディレクトリに500KB強のテンポラリファイルが作成されており、これが容量を圧迫しています。さらに調べると、これはplugin-containerというタスクが作成していました。このタスクはFirefox3.6.4以降にサポートされた機能で、firefox本体から分離した形でプラグイン特にAdobe Flash等を実行するタスクだそうです。領域が足りない旨の警告を無視していると、それ以上領域が必要になった場合には、plugin-containerがクラッシュします。するとブラウザで表示しているページの中でFlashが使われている部分はクラッシュした旨の表示になります。クラッシュすると、一旦テンポラリファイルはクリアされるようで、ramdisk領域は回復します。ブラウザ表示については、再読み込みをすればplugin-containerが再起動し、Flash部分も正常表示に戻ります。また、領域不足の警告が出た時点でタスクマネージャからplugin-containerを強制終了させても、領域を回復させることができます。Flash表示を特に参照していない場合はこれで特に実使用上問題ないようです。

私の場合は、ramdisk化できた領域が700MB弱しかないので、上記以外に使用例が思い浮かばなかったのですが、使用するアプリケーションによってはさらに有用な使用方法があるかもしれません。少なくとも、備わっているハードウェアリソースを無駄にせずに使っている、という意味では、精神衛生上悪くはありません。




posted by beverlyglen2190 at 19:22 | Comment(2) | テクノロジー | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
私も1連の工程ではまっているのですがram4g.reg実行後に何分ぐらいで再起動するのでしょうか?
Posted by jun at 2011年01月22日 03:29
私の環境では、ramdisk.exeの設定、実行ができるくらいの時間はあったようです。試していませんが、ram4g.reg実行後、強制的に再起動してしまってはどうでしょう?
やり直すときは、ramdiskをアンインストールして、ram4g.regを実行することから始めるのが大事と記憶しています。
Posted by beverlyglen2190 at 2011年01月23日 02:58
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。