2009/12/11

Windows関係:: メモリ4GBをフルに使うPart2

前回4GBのメモリをフルに使う投稿をしましたが、その後かなりの期間挙動がおかしくなりました(ToT)

お陰様で昨日解消できたので症状と原因、解決策をメモしておきます。

★症状
  1. OS起動後、イベントビューアにDISK、ID:51、ページング操作中にデバイス \Device\Harddisk0\D 上でエラーが検出されましたが連続で記録される。
  2. 開発で使用しているCGIでエラー表示されるもエラー内容がない(ソースをみるとエラー内容が表示されていない
    ※これは本原因によるものではない。原因不明です(ToT)
  3. VGAのドライバがたまに破損、デュアルディスプレイ環境がおかしくなる。
  4. IE8を入れると特定サイトでクラッシュする。IE7はOK。
    ※これに関しては本原因と関係しているか確証はまだ得ていないです。
    ※2009/12/19 IE8にアップグレード、問題なく動作しました。
★原因

 ドライバがカーネルアドレス空間に連続した仮想メモリ アドレスの大きなブロックを確保して、デバイスのバッファのマッピングを試みるためにこの問題が発生します。
 /3GB スイッチを使用すると、カーネルが使用できるメモリは半分になります。
 このため、カーネルは、ドライバの要求を満たす十分な大きさのメモリブロックを割り 当てることができない場合があります。
 典型的な例としてグラッフィックスカードがあげられます。
 特にCAD等で使用されるミッドレンジ以上のグラフィックスカードの使用時にこの問題が多く発生します
 ※日本HPのページから抜粋。HPさん、ありがとうございます。

 現在使用しているのはnVidia社製QuadroNX290で、まさにこの原因にぴったり・・・

★解決策
  1. boot.iniの/3GBスイッチ以外に/USERVAメモリ管理スイッチを追加。
    これにより、ユーザ領域を指定して、残りをカーネル領域に割り当てられます。
    ●boot.ini
    [operating systems]
    multi(0)disk(0)rdisk(0)partition(2)\WINNT="????" /3GB /userva=2900
  2. 仮想メモリの割り当てを最適化する。
    ※推奨値が4987MBに対し、Cドライブのみ2000~4000MB割り当てとなっていたため。
    仮想メモリはC、Dドライブに割り当てました。
以上の解決策で快適な開発環境になりました。
症状④はこれから確認してみます。
症状④は解決しました。
スポンサーリンク

スポンサーリンク