FC2ブログ
Chicken-Developer Anthony's BLOG
RAMディスクに仮想ファイル(ページファイル)を置いてXPを高速化
今日ソースネクストから「驚速RAMディスク」の優待販売案内が来た。
使い切れていないメインメモリの一部をドライブとして割り当ててHDDのようなディスクアクセスのない高速なドライブ環境を手に入れるためのソフトだ。

RAMディスクと言えば、随分前に注目して一度使ったことがある。
それもフリーソフトでだ。

ソースネクストのソフトは安いので幾つか買っているが、今回はこれに近いことを完全タダ(フリー)で構成してみる。

使用するのは国産ではない。ERAMなど幾つか試してみたがどうも仮想メモリ(ページファイル)をRAMディスクに割り当てることができない。
Windows 2000までは対応していたらしいが、XP/2003では仮想メモリの管理方法が変わってうまく機能しなくなっているらしい。
中にはドライブレターを割り当てられない、しかもRAMディスクのサイズは64Mバイトまでしか認識しないなど、結局私がやりたいことができないものばかり。フリーソフトにあまり多くのことを望めないので仕方が無いことではある。

こういったとき私はよく海外に出かける。(海外のサイトで探すと言うこと)
あった。よいのが。FreeRamdisk for Windows Vista, XP, 2000 and 2003 Serverというもの。

今回はこれを使った構成を紹介する。
  1. まずはここからramdisk.zipファイルをダウンロードしてくる。
  2. zipファイルを解凍する。(一時的な場所でなく今後使うファイルなのである程度考えられた場所がよい)
  3. ramdisk.exeを実行。
  4. Install Ramdiskボタンを押す。
  5. Disk Sizeを選択。(私は512Mを選択)
  6. Drive Letterを選択。(私はRを選択)
  7. Media TypeでFixed Mediaを選択。
  8. Applyボタンを押す。

Ramdisk

※見た目はVistaだが、これはXPにVista風のVisualStyleを適用しているだけ。

以上で導入は完了。次回からは再起動してもこの設定でドライブは維持してくれる。
とくにBOOT.INIを編集する必要などはないし、デバイス・マネージャを使ってデバイスの導入などといった多少分かり図らいオペレーションは無い。

さて、このようにして作成されたRAMディスクをどのように使うかが問題だ。

私のXPは1Gのメモリが2枚刺さっているので2Gバイトある。そのうちの512MバイトをRAMディスクに割り当てた。
これだけのサイズを有効に活用するのかは、使いこなしの期間がまだまだ足りない。
とりあえず、今の段階では私の現時点での使い方を紹介しておくことにする。

  • インターネット一時ファイルの配置場所
  • ページファイルの配置場所
  • TMP、TEMP環境変数

    以上の3点である。

    1. インターネット一時ファイルのキャッシュ配置場所
     Internet Explorerのプロパティ<全般>タブにある設定ボタンで設定する。フォルダの移動ボタンを押して作成したRAMディスクを指定すれば、R:\Temporary Internet Files\と設定することが可能だ。(※私はここで64Mバイトの指定をした。512-64=余り448)
     この設定を行うと再起動するとメモリが開放されるのですべてのファイルが破棄されることになり、再起動時に一時ファイルを全て削除した状態と同じになる。
     最近は昔のようにナローバンドなことは少なくなったので、ネットサーフィンをしているときはむしろキャッシュファイルの管理でディスクアクセスが頻繁に発生してこれがボトルネックになっているような気がしている。
     変わりにネットワーク・トラフィックが増すことになるが、この構成のほうが快適になるはずである。毎回画像ファイルなどをダウンロードするとネット環境が快適でなくなるような人には勧められない。

    2. ページファイルの配置場所
     他のフリーソフトではできなかったのがこれ。
     このソフトではページファイルを割り当てるツールが付いているのでありがたい。コマンドプロンプトからaddswap R:\pagefile.sys 256 384と実行すればRAMディスク上にページファイルが出来上がりシステムへの設定も完了している。(※448-384=64)
     ただし、システムのプロパティの<詳細設定>タブのパフォーマンスの設定で開く、パフォーマンスオプションの<詳細設定>タブにある仮想メモリの変更で表示されるダイアログ、ここには設定されている内容が反映されていないので、カスタムサイズで初期サイズ 256、最大サイズ 384と入力して設定ボタンを押しておいたほうがよい。
     後々の混乱の元にならないように画面上の見た目も合わせておいたほうがよいだろう。もちろん、この設定に関してはシステムへの設定は行われているのでOKや適用ボタンを押してダイアログを閉じていっても再起動を促されるようなことはない。
     これらの設定に加え、他のHDDのドライブに設定されているページファイルはすべてページングファイルなしに設定して再起動したほうがよい。
    Pagefile

     これはあくまで参考設定なので全ての人がこの設定で快適になるとはいえないので注意してもらいたい。

    3. TMP、TEMP環境変数
     いわゆる一時ディレクトリとして様々なアプリケーションがファイルを作ったり変更したり作ったまま放置したりされるディレクトリである。システムのプロパティの<詳細設定>タブにある環境変数ボタンを押して設定する。TMPとTEMPはユーザー環境変数とシステム環境変数にそれぞれ2つずつあり合計で4つある。
     これらの値にR:\TEMPと設定すればよい。一時ディレクトリを使うアプリケーションの動作はかなり快適になるはず。それに再起動やシャットダウンでファイルは消えるので無駄にHDD上に一時ファイルが残っているという気持ちの悪い状態がなくなるのでよい。(※インターネット一時ファイルで64M、ページファイルで最大384M使ったので、この一時ディレクトリは64Mの割り当てとなる。計画的な割り当てをするならaddswap R:\pagefile.sys 384 384の方がよいかもしれない。)

    ■特筆すべき点を発見■
     ERAMの場合、512Mのような大容量RAMディスクを構成する場合BOOT.INIでWindowsがメインメモリとして認識するサイズを1.5Gにしておくなどの対応が必要であったが、このFreeRamdiskは違う。BOOT.INIの変更はしないし、Windowsへのメインメモリの指定も特に変更しない。
     つまりFreeRamdiskではWindows上で2Gがメインメモリであると認識された状態で512MのRAMディスクを使用できるので、ノートPCやVistaで活用している休止状態ではRAMディスクの内容は開放されないのだ。もちろんサスペンドも。
    つまり、私の環境の場合2Gまるまるhiberfil.sysに保存されて休止状態になるため、そこにRAMディスクが含まれているというわけだ。

     別の言い方をすると、大容量RAMディスクの場合BOOT.INIを使うERAMなどでは512MのRAMディスクを作成した場合、OS管理上のメモリサイズが1.5Gになるため、hiberfil.sysも1.5Gになる。つまり、Windowsは休止状態になるときhiberfil.sysへメインメモリとして認識している1.5Gしか保存しないため、RAMディスクの内容(512M分)は破棄されてしまうと言うことだ。

    FreeRamdisk、なかなかよいソフトを見つけたな、と思う。



    今日一日(2008.02.22)上記設定で使用してみた感想。

    □良かった点
  • ネットサーフィンは体感できるほど快適になった。
  • ディスクアクセスが確実に減った。ページファイルをRAMディスクにした効果がある。
  • 圧縮ファイルの解凍は一時ディレクトリを使用するため凄く早くなった。

    ■悪かった点
  • 一時ファイルに指定しているRAMディスクサイズが足りなくなると大きなファイルのダウンロードが失敗する。今日Eclipse(128Mくらい)をダウンロードしたら途中でディスク領域が足りませんと警告されDLが失敗した。
  • 仮想メモリ(ページファイル)は256-386で設定していると256Mで足りなくなったときに増加させることを通知されるので初めから386-386で設定した方が良さそうだ。

    やはり、一番気になったのは大きなファイルのダウンロードで一時ファイルのサイズが足りなくなったとき。ダウンロードは他のダウンローダー系ソフトに任せるとこれは回避できるが・・・
    これに関しては今後も使用してみて考えてみることにする。

  • コメント
    この記事へのコメント
    FreeRamdisk=Gavotte RAMDisk
    Ver.1.0.4096.4
    32bitXPで、
    2GB*2+1GB*2のメモリを積んで、OS管理メモリ2.87GB(VRAM128MB)+RAMディスク3GBで使用中。
    SP2(一ヶ月)>SP3(二週間)特に不具合なし。
    注:インストール時ram4g.regファイルを入力。
    2008/05/08(木) 06:06:57 | URL | すさのお #-[ 編集]
    管理人のみ閲覧できます
    このコメントは管理人のみ閲覧できます
    2009/03/12(木) 21:47:12 | | #[ 編集]
    補足
    addswapするときに「'addswap' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」となる時は

    ramdisk.zipを解凍した先が例えばC:\Tool\RamDiskだったら、コマンドプロンプトで
    cd C:\Tool\RamDisk してから
    addswap R:\pagefile.sys 640 640
    してください。もしくは、
    C:\Tool\RamDisk\addswap R:\pagefile.sys 640 640
    でもよいです。
    2009/03/13(金) 17:18:06 | URL | anthony #-[ 編集]
    管理人のみ閲覧できます
    このコメントは管理人のみ閲覧できます
    2009/03/15(日) 00:26:06 | | #[ 編集]
    承認待ちコメント
    このコメントは管理者の承認待ちです
    2009/04/09(木) 17:34:37 | | #[ 編集]
    8GBのメモリ搭載の場合、制限あり
    本記事をもとに次の環境でRAMディスクを作成し、安定動作していました。

    OS:WinXP SP3
    CPU:3.36GHz
    RAM:4GB
    GPU:512MB

    メモリを4GB追加し、8GBに増設して、RAMディスクのサイズを変更しようと
    したところ、サイズのリストの最大値が3GBまでであることに気づきました。

    FreeRamdiskの使用制限で上限が3GB(3072MB)のため、1GB(1024MB)は無駄になる!

    そこで、次の通りにRAMディスクを拡張したいと思いました。

    ・RAMディスク:768MB => 3072MB
    ・インターネットの一時ファイル:192MB => 512MB
    ・環境変数TEMP/TMP:192MB => 512MB
    ・仮想メモリ(ページサイズ):384MB => 2048MB

    サイズを3GBにして、OSを再起動すると、ブルースクリーン状態となりました。
    セーフモードでRAMディスクを削除し、再試行したところ、FAT32ではなくFATとなり、
    15.9MBまでしか作成されませんでした。

    原因が不明なので、VSuite Ramdiskに乗り換えてみようと考えております。

    取り急ぎご報告まで。
    2009/07/27(月) 15:24:38 | URL | カレン #CofySn7Q[ 編集]
    『メモリを4GB追加し、8GBに増設して、RAMディスクのサイズを変更しようとしたところ、サイズのリストの最大値が3GBまでであることに気づきました。』

    俺は2GBが4枚でOSはXPのMCEだが、普通にインストールして、後は勝手に4.7GB作ってたぞ。言っておくけどコツだのやり方だのなんて無いから。デフォルトで16Mになっているだろ?それ動かしたら駄目なんだよ。そこは数字の表示こそ16メガバイトだけど、実際は自動で1バイト逃さず全部勝手に取ってくれる絶好のポジションなんだよ。分かった?
    2010/01/09(土) 15:52:17 | URL | VISIONDIVINE #r1y2oiqA[ 編集]
    コメントを投稿する
    URL:
    Comment:
    Pass:
    秘密: 管理者にだけ表示を許可する
     
    トラックバック
    この記事のトラックバックURL
    http://anthony7.blog110.fc2.com/tb.php/4-bea12369
    この記事にトラックバックする(FC2ブログユーザー)
    この記事へのトラックバック