web-dev-qa-db-ja.com

32ビットWindows Serverアドレス> 4GB RAM-どのように?

これは私にとってニュースです。 32ビットOSは2 ^ 32、つまり4GBのRAMしかアドレスできないという印象を常に受け​​ていました。限目。

しかし、これは何ですか- http://www.crucial.com/uk/kb/answer.aspx?qid=3743&click=true

これはどのようにして可能ですか?これはまだプロセスあたり4 GBを超えることを意味しますか?つまり、IISを使用している場合、ASP.NETに4GB以上を割り当てることができますか?

編集:回答ありがとうございます。これをコンテキストで言えば、これはWeb開発用です。 w3wp.exe(ASP.NETワーカープロセス)は4GBに制限されているように見えますか?これは本当ですか?

おかげでダンカン

8
Duncan

MMU一部の32ビットプロセッサでは、実際には4GBを超える物理RAMをサポートできますが、単一のプロセスは仮想アドレス空間で一度に4GBしか表示できません。この種類のCPUは4GBを超えるRAMを搭載し、4GBを超えるRAMを使用して複数のプロセスをサポートできます。ただし、単一のプロセスで使用できるのは4GBのみです。 RAM(オペレーティングシステムからのオーバーヘッドを差し引いたもの))。

Xeonでは、この機能は Physical Address Extension (PAE)と呼ばれ、一部のオペレーティングシステムには、プロセスがMMUを操作して、プロセスの仮想アドレス空間が不足しています。Windowsでは、このAPIは Address Windowing Extensions (AWE)として知られていますが、Windowsのすべてのバージョンで使用できるわけではありません。機構。

この機能を使用するには、それをサポートするようにプログラムを明示的に設計する必要があります。AWEはプロセスの仮想アドレス空間を自動的に拡張しません。たとえば、IISを使用していることは認識していませんが、SQL Serverの特定のバージョンがサポートしています。

EDIT:いきます。それを見つけた。 Stackoverflowへのこの投稿 PAEのメカニズムの詳細へのリンク。

編集2:このフォーラムの投稿 を信じる場合、IISはサポートしていませんAWEのために。

[〜#〜] pae [〜#〜] を使用すると、32ビットで4GBを超えるアドレス指定が可能です。プロセスメモリの制限については、次を参照できます Bruce Sandersonの一般的なWindows情報、RAM、仮想メモリ、PageFileなどすべて

プロセスごとのメモリについては、上記の一般的なWindows情報のリンクのセクション1.2(「アドレススペースとプロセス」)および2.5(「アプリケーションメモリの調整-/ 3GBスイッチ」)を参照してください。

4
radius

念のためここで注記しておきますが、Windows 2003のハイエンドバージョン(EnterpriseおよびData Center)は4GB以上で動作します。 RAMの14GBのHP DL380があり、W2K3 EEは14GBをすべて表示しました。VMWareサーバーは4GB以上を使用できました。W2K3をESXi 3.5 U3に置き換えたところ、14GBをすべて使用できました。 。

私が読んだところ、Microsoftは他のバージョンのWindows(XPなど)でそれを有効にしてみましたが、メモリが4GBを超えると、多くのドライバに問題があることがわかりました。問題の少なくとも一部はDMA(ハードウェアへのメモリアドレスが32ビットに切り捨てられ、メモリの破損が始まる)でした。そのため、SPが削除されました安定性の問題を防ぐために、ほとんどの古いバージョンのWindowsでPAEを使用する。

2
Walter