*Windows 2003 ServerでPAEを有効にする方法 [#ib3831b7]
*PAEについて [#ib3831b7]
#contents

**PAE (Physical Address Extension) とは [#a4b7a29d]
物理アドレス拡張(Physical Address Extension - PAE)はインテル社のP6マイクロアーキテクチャで追加されたアドレス空間の拡張機能であり、Pentium Pro及びそれ以降の製品で利用できる。

PAEを使用した場合には、IA-32アーキテクチャのアドレスラインである32ビットを、36ビットまで拡張する。これにより、IA-32の標準では最大4GiBまでしか使用できなかった物理メモリ空間を、最大64GiBまで使用できるようになる。しかしながら、仮想アドレス空間は4GBのままであり、ページテーブルのエントリを32ビットから64ビットに拡張することによって物理メモリ空間にアクセスする事となる。ページサイズは4KiBで、ページテーブルのサイズは1ページのままであるので、ページテーブルのエントリの数が一段あたり1024から512になる。これを補うために、PAEにおいては、4エントリを持ったページテーブルが1段追加される。

AMD社のAMD64アーキテクチャでは、PAEのページテーブルエントリの構造を保ったまま、512エントリを持った4段のページテーブル構造にすることによって仮想アドレス空間を48ビット、そして物理アドレス空間を52ビットまで拡張した。また、ユーザー命令セットでは64ビットでアドレッシング可能となっており、2008年4月の時点では、こちらが一般的となっている。

**何故PEAが必要か [#v4428f11]
通常、Windows 2000 または Windows Server 2003 で実行されているプロセスは、物理メモリと仮想メモリの合計で2GBまでのメモリアドレス空間にアクセスすることができます。
多くのプログラムが実行されると、それに比例してメモリの使用量は増加します。これは、2GBのアドレス空間の制限に達するまで増加します。 

この状況が発生すると、ページング処理が大幅に増加し、パフォーマンスに悪影響が生じることがあります。Windows 2000 および Windows Server 2003 のメモリ マネージャは、PAE を使用してより多くの物理メモリをプログラムに提供します。これにより、ページ ファイルのメモリをスワップする必要が減るため、パフォーマンスが向上します。プログラム自体は、実際のメモリ サイズを意識しません。PAEメモリのメモリ管理と割り当てはすべて、実行されるプログラムと関係なく、メモリマネージャによって処理されます。~
''ただし、PAEには、メモリアクセス時に常にオーバーへッドを発生させてしまうというデメリットもある。''

PAEを有効にする事により、アプリケーションは''AWE''と言うAPIを利用する事が出来ます。
通常では使用されませんが、SQL Server等の大規模なメモリを活用するアプリケーションで利用されるAPIです。
SQL ServerでAWEを利用するための手順は[[SQL Server 2000でAWEを有効にする方法>../AWE]]に示します。

**/3GBスイッチとは [#ab4f3523]
&color(red){''※ 重要''};~
&color(red){''/3GB スイッチは、Windows 2000 Server ではサポートされません。''};~
&color(red){''アプリケーションまたはオペレーティング システムがクラッシュする可能性があります。''};

システムに搭載されている物理メモリの量にかかわらず、Windowsは4GBの仮想アドレス スペースを使用します。このうちの2GBをユーザー モードプロセス(アプリケーションなど)に割り当て、残りの2GBをカーネルモードプロセス(OSやカーネルモードドライバなど)に割り当てます。/3GBスイッチは、アプリケーションに割り当てるメモリを3GBに増やし、オペーレーティング システムに割り当てるメモリを1GBに制限することができます。但し、OS側の領域が減らされるので状況によっては不具合を引き起こす可能性もあります。例えば、Active Directoryを構築している場合など。

**/3GBスイッチとPAEを併用する際の注意 [#w4863afb]
/3GBと/PAEが併用されている場合、OSは&color(red){''16GBを超えるメモリを使用出来ません。''};

**前提条件 [#mc502793]
- 以下に挙げるOSであること
-- ''Microsoft Windows 2000 Advanced Server''
-- ''Microsoft Windows 2000 Datacenter Server''
-- ''Microsoft Windows Server 2003 Enterprise Edition''
-- ''Microsoft Windows Server 2003 Datacenter Edition''

**PEAを有効にするには [#b92d990a]
**PAEを有効にするには [#b92d990a]
-PAE を有効にするには、Boot.ini ファイルで /PAE スイッチを使用します。 
-Boot.ini ファイルの例を次に示します。

 [boot loader]
 timeout=30
 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
 [operating systems]
 multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect /NoExecute=OptOut

のようになっている一番下の行に「/PAE」を追加します。

 multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect /PAE /NoExecute=OptOut

-以下にBoot.iniを編集する方法が分からない人用の手順を示します。

+[マイ コンピュータ] を右クリックし、[プロパティ] をクリックします。[システムのプロパティ] ダイアログ ボックスが表示されます。
+[詳細設定] タブをクリックします。
+[起動と回復] の [設定] をクリックします。[起動と回復] ダイアログ ボックスが表示されます。
+[起動システム] の [編集] をクリックします。Windows の boot.ini ファイルが、メモ帳で表示されます。
+[Operating Systems] セクションで、/fastdetect スイッチを含む起動行の終わりに、/PAE のスイッチを追加します。
+変更を保存して、メモ帳を閉じます。
+[OK] を 2 回クリックして、ダイアログ ボックスを閉じます。次に、コンピュータを再起動して、変更内容を有効にします。

-/3GBスイッチを付ける場合は、同様に/3GB と記述して下さい。

**PAEが有効になっているかを確認するには [#g8c69952]
+[マイ コンピュータ] を右クリックし、[プロパティ] をクリックします。[システムのプロパティ] ダイアログ ボックスが表示されます。
+[全般]の[コンピュータ]の項目に「物理アドレス拡張」という表示があるか確認する。

**参考リンク [#tb1d510c]
-[[Windows Server 2003 および Windows 2000 では大容量メモリのサポートが使用できる>http://support.microsoft.com/default.aspx?scid=kb;ja;283037]]