KCOLCDNAS Blog

Author:SAYKAY
PC記事の内容は色々と間違ってるかも。

PC設定

/USERVA 32BitOSでのお話

大原則:32BitOSで使用できるメモリ空間は4GBである(ページングは含まない)

通常4GBのメモリを搭載していても、OSは3GBまでしか認識しない。
かつユーザー領域(アプリケーションのメモリとして使える領域)は2GBまでしかない。
が、/3GBオプションを付けることでユーザー領域を3072MBまで拡張できる。
その代わり/3GBを付けるとカーネルメモリの利用できるメモリアドレス空間は1GBに減少する(非ページプール、ページプール、PTEのメモリ領域が減少する)。

/USERVAオプションは、3072MBからどの程度メモリ領域をカーネルに返すか、というオプションになる。
例えば/USERVA=2900に設定した場合、ユーザー領域は2900MBになり、カーネルには3072-2900=172MBのメモリ領域を返すことになる。

boot.ini の起動オプション/USERVAについて、MSはその値を2900~3030の間、特に2900を推奨している。

/3GBオプションでカーネル領域が足りなくなった場合、OS動作が不安定になる・カーネルにオーバーヘッドが出来てCPU使用率が上がりパフォーマンスが落ちる、等の弊害が起きる可能性がある。
その場合は/uservaによるカーネルへのメモリ空間の受け渡しが必要、だと思われる。


※※※ここからは理解らないので推測※※※
32BitXPは4GBの物理メモリを搭載していても、物理メモリは3GBしか認識しない、使用できない。
つまりメモリアドレス空間は4GB持っているにも係わらず使用できる物理メモリは3GBだけということ。
残りの1GBはカーネルが利用する論理アドレス空間(MMIO=メモリーマップドI/O)として使われている。
ここから導き出される答えはカーネルが1048MBを越えなければ、/uservaを設定する必要はないということ。

・非ページプールとページプールの値はタスクマネージャーで分かる
(ただしカーネルに与えられたメモリ空間の量でそれぞれの上限が設けられる)
・32BitXPでのシステムPTEの上限は660MB(多分)
・ビデオカードの持つVRAMを使用する時もメモリアドレスはこの領域にマッピングされる。

よってそれらの合計が1048MB以下であれば、ユーザー領域は最大の3072MBで確保できる。
※※※※※※※※※※※※※※※※※※※※※※※※※
ってことで合ってるのかなぁ?@@;


じゃあ実際に/USERVAを設定せず3072MBをユーザー領域に確保できたとして、、、、
あれ……これって本当に恩恵受けられるのか?という疑問が。

実際、無数のソフトを立ち上げてもなかなか3GBは消費できないし、ユーザー領域を3GBまで拡張しても32Bitアプリは2GBまでしかメモリを使用できない制限がある。
(但しアプリケーションに/LARGEADDRESSAWAREオプションが設定されていれば2GBを越えて使用することが出来る。ラージアドレスが設定されていないアプリケーションでも、editbin.exeなどでヘッダを書き換えてやると2GBオーバーのメモリを利用できる(可能性がある))

しかしもう一方で/USERVA=2900したとして、カーネル領域を172MB増やしても、
その物理メモリ172MBはどこへ行ったのか?(=物理メモリとして使用されることがあるのか)という疑問が残る(というよりこれが発端でUSERVAを設定したくないわけで、カーネルが物理メモリを消費する部分に当てはまるのか、というととてもそうは思えず……)。

まあ2GBを越えるメモリ使いたいアプリケーションなんて早々無いし、64bitOSが台頭してきた今となっては、/USERVA自体、時代錯誤と言えちゃうような話だったりする…(苦笑)

今時32bitの枠で考えたり試行したりしている時間があるなら64bitに乗り換えろって感じですかね@@;

RAMDisk活用術

世間は64bitに移行してるけど超高速なRAMDiskは有効な領域!
なにより大容量メモリが搭載可能になった今、使わない手はない!と思う。

32BitOS用→Gavotte RAMDisk
64BitOS用→Dataram RAMDisk

◆◆RAMDiskのメリット
とにかく読み書きが超・超・超高速!!(←重要)
外周内周での速度差が無い!ランダムアクセスにめちゃ強い!(HDDは磁気ディスクを回転させている上、読み書きヘッダが1つしかないためシーケンシャルは速くてもランダムアクセスには弱い。)
断片化を気にしなくていい!(←重要)
HDDに負担をかけない!(←重要)
アクセス分散をすることになり結果的にHDDの動作も速くなる!
動作音がしない!
楽しい!(←個人差があります)

◆◆RAMDiskのデメリット
電源が落ちるとデータが消える(RAM→HDD書き出しはバッチファイルを作るといい)
大容量と言ってもやはりまだ上限が……。
OSの使用できるメモリ量が減る。
読み書きにそれなりのCPUリソースを使う。
RAMドライバー経由の為、OSのメインメモリとして使うより圧倒的にアクセス速度が落ちる。



以下はRAMDiskのドライブレターがMの場合の設定。
ま、個人的なメモです。

■IEのキャッシュフォルダ
インターネットオプションから可

■Chromeのキャッシュフォルダ
Chromeへのショートカットに起動オプションを付ける。
例:XPの場合
"C:\Documents and Settings\(ユーザー名)\Local Settings\Application Data\Google\Chrome\Application\chrome.exe" --disk-cache-dir="M:\Chrome Cache"
(※他のアプリケーションなどから起動する場合はレジストリの変更が必要)

■Firefoxのキャッシュフォルダ
1.URLに about:config
2.フィルタ文字列 browser.cache.disk.parent_directory
3.値にパス入力 M:\Firefox Cache

■WindowsのTEMPフォルダ
環境変数TEMP・TMPをM:\Tempに指定

■3DゲームをRAMDriveから起動
バッチファイルでゲームクライアントのフォルダのコピー
(サウンドやテクスチャファイルの読み込みの高速化)

■プリンタースプール(プリントサーバーのプロパティ→詳細設定)
■ダウロードファイルの一時保存
■Recentフォルダ
■圧縮ファイルやインストールファイルの展開先
■Photoshopなどの仮想記憶ディスク
■キャッシュマッピングソフトの設置(※多分これが一番恩恵が高い)
■ビデオキャプチャーの保存先
■エンコードの書き込み先
■ライティングのイメージキャッシュに

こんなもんかな…(笑)
とにもかくにもテンポラリファイル置き場として最高です!



↓ちなみにRAMDiskの読み書きがどのくらい早いかっていうとこんな感じ。
HDDの10~70倍くらいの速さ。(※HDDでRAID0を組んでも2倍にすらならない)

RamDrive_100x5x714
HDDベンチマークソフトCrystalDiskMark

作品一覧
  • RSS
  • Dlsite blog