Gavotte Ramdisk

目次


概要

  • 32bit版Windows管理外のメモリ領域(3GB前後を超えた部分)をRAMディスクとして使える

URL

インストール

  • インストールの手順はGavotte Ramdisk まとめWIKIなどに書かれている
  • あらかじめboot.iniを編集して「物理アドレス拡張(PAE)」を有効にしておく必要がある
  • インストール後のRAMディスクの構成を設定するスクリプトを作るとよい
    • 参考: http://d.hatena.ne.jp/sona-zip/20080511/p1
    • 参考: http://d.hatena.ne.jp/sona-zip/20080512/p1
    • スクリプト: init_ramdisk.bat
    • これを実行後にWindowsを再起動して、R:ドライブ下に目的どおりのディレクトリツリーができていることを確認する(後述の目的別設定では、このディレクトリツリーを前提としている)
      R:\SYSTEMROOT
      R:\SYSTEMROOT\Temp
      R:\USERPROFILE
      R:\USERPROFILE\Local Settings
      R:\USERPROFILE\Local Settings\Application Data
      R:\USERPROFILE\Local Settings\Temp
      R:\USERPROFILE\Local Settings\Temporary Internet Files
      R:\USERPROFILE\Local Settings\Application Data\Mozilla
      R:\USERPROFILE\Local Settings\Application Data\Mozilla\Firefox
      R:\USERPROFILE\Local Settings\Application Data\Mozilla\Firefox\Cache
      
    • このスクリプトで作っている C:\WINDOWS\TEMP からのジャンクションが削除できなくなったら、Junctionというプログラムで削除できる

目的別設定

ページファイルをRAMディスクに置く

  1. 現存のページファイルのサイズを一旦ゼロにする
    • システムのプロパティ > 詳細設定タブ > パフォーマンスの設定 > 詳細設定タブ > 仮想メモリ > 変更
    • RAMディスク(R:ドライブ)以外の全ドライブを「ページングファイルなし」にして、それぞれ[設定]ボタンをクリックする
  2. RAMディスク(R:ドライブ)のページファイルサイズをカスタムサイズで設定、さらに[設定]ボタンをクリックする
    • 初期サイズ:64MB
    • 最大サイズ:64MB
    • ここの設定によってはC:ドライブに \pagefile.sys が作られてしまうことがあるので、確認しながら調整すること
  3. 求められるままに再起動する
  4. RAMディスク(R:ドライブ)に所望のサイズの \pagefile.sys が作られていることを確認する
  5. RAMディスク以外のドライブに \pagefile.sys が残っていたら削除する

WindowsのテンポラリファイルをRAMディスクに置く

  • システムのプロパティ > 詳細タブ > 環境変数
    • ユーザ環境変数
      • TEMP: R:\USERPROFILE\Local Settings\Temp
      • TMP: R:\USERPROFILE\Local Settings\Temp
    • システム環境変数
      • TEMP: %SystemRoot%\TEMP (RAMディスクへのジャンクション)
      • TMP: %SystemRoot%\TEMP (RAMディスクへのジャンクション)

Internet Explorerのインターネット一時ファイルをRAMディスクに置く

  • インターネットオプション > ブラウジング履歴 > 設定
    • 使用するディスク領域: 50MB
    • フォルダを移動: R:\USERPROFILE\Local Settings
    • 上記で設定した親ディレクトリの下に「Temporary Internet Files」というサブフォルダがなければ自動的に作られ、そこがキャッシュディレクトリになる

Mozilla FirefoxのディスクキャッシュをRAMディスクに置く

  • about:config
    • browser.cache.disk.parent_directory: R:\USERPROFILE\Local Settings\Application Data\Mozilla\Firefox
    • 上記で設定した親ディレクトリの下に「Cache」というサブフォルダがなければ自動的に作られ、そこがキャッシュディレクトリになる

設定変更履歴

1. 上記の全てを組み合わせてみた

  • システムやアプリケーションのテンポラリファイルの置き場所をRAMディスクにすると、アプリケーションによっては不具合が発生するようだが、原因を個々に特定するのは手間だ
  • 再起動を要求するインストーラが、再起動後に走らせるプログラムを C:\WINDOWS\Temp に置くケースがあることが判明した
    • つまり、C:\WINDOWS\Temp をRAMディスクにマッピングしてはいけない

2. RAMディスク領域を目一杯使った巨大なページファイルを1つ置くだけにしてみた

  • スクリプト: init_ramdisk.20081229_0411.bat
  • 空き領域が200MBを切ると出る「ディスク領域が不足しています」警告を避けながらできるだけ大きなページファイルを確保するには:
    • 初期サイズ/最大サイズ:565MB (RAMディスクサイズの767MBから200MBを引いて少し余裕を持たせる)
    • ごみ箱用に確保される領域をなくすため、ごみ箱を右クリック > プロパティ(R) > ドライブごとに構成する(C) を選んだあと、R:ドライブだけ「ファイルをごみ箱に移動せず削除する」を選択する
  • なぜかシステムが不安定だ(原因不明)
    • 結局、C:ドライブなどにもページファイルが必要?それではページファイルをRAMディスクに置く意味があまりない

3. ユーザレベルのテンポラリファイルを置くだけにしてみた

  • スクリプト: init_ramdisk.20081230_1231.bat
  • ページファイルはRAMディスクに置かない
  • システムのプロパティ > 詳細設定タブ > 環境変数(N) では、ユーザ環境変数のTEMPとTMPのみRAMディスクに変更し、システム環境変数は変更しない
    • システム環境変数まで変更すると、RAMディスクへのアクセス権限のない他ユーザによるアプリケーションの動作に支障が出る
  • Internet Explorer と Mozilla Firefox のテンポラリファイルの置き場所はRAMディスクに変更する
    • Firefoxでタブをたくさん開いても高速(ただしディスクキャッシュサイズ上限に達したところでキャッシュファイルの入れ替えが始まると、途端に動作が遅くなった)

4. ブラウザのテンポラリファイルを置くだけにしてみた

  • スクリプト: ※上と同じで問題ない
  • ページファイルはRAMディスクに置かない
  • システムのプロパティ > 詳細設定タブ > 環境変数(N) では、ユーザ環境変数およびシステム環境変数のTEMPとTMPも、RAMディスクには変更しない
    • 環境変数のTEMPとTMPを変更すると、RAMディスク領域のサイズを超えるようなテンポラリファイルを作ろうとするようなアプリケーションの動作に支障が出るから
      例)サイズがおよそ500MB超のzipアーカイブを作ろうとする場合
  • Internet Explorer と Mozilla Firefox のテンポラリファイルの置き場所はRAMディスクに変更する
    • RAMディスクを使うのがFirefoxとInternet Explorerだけなので、RAMディスク領域を目一杯使ってテンポラリファイル領域を確保してよい

タグ





最終更新:2012年01月15日 11:37