[サポート]4GBを実装した運用環境について

4GB の RAM を実装した運用環境について記述します。
サーバ ハードウェア(システムチップセット)の仕様により、実装した 4GB  の RAM 全てをOSが利用できない場合があります。
詳細についてはそれぞれの参考Webを参照ください。
なお、4GBを運用する環境においては高負荷時のエラー回避のため、メモリリサイクルを必要とする場合があります。

[原因]
IIS 6 では、ワーカープロセスが使用する最大メモリが設定(制限)されていません。(IIS 5では初期値で60%制限済み) 運用環境に 4 GB の RAM が実装されているときは、プロセス用仮想アドレス空間の利用可能限界値 (2GB) を超える可能性があり、アクセスが集中した高負荷の稼働状況により2GB を超え OutOfMemoryException が発生しIISが停止することがあります。

[対策]
4 GB の RAM が実装されている運用環境では、より安定した稼働のため積極的にメモリ制限によるリサイクルを設定します。 具体的にはワーカープロセスの使用する最大メモリが設定値に達するとリサイクルを自動的に行いメモリの解放を行うことで OutOfMemoryException を回避できます。この場合、2Gのうち部分的にシステム領域として利用されることを考慮して経験的に60%程度にすることが推称されています。

設定方法は別掲情報「OutOfMemoryException の発生時の対策について」をご覧下さい。


[環境]
Windows Server 2003 Standard Edition サービスパック 1、IIS 6、4GB RAM、ASP.NET 1.1

◇環境について補足情報
以下のオペレーティング システムでは、/PAE スイッチを使用して 4 GB を超える物理メモリを利用することができます。

• Microsoft Windows 2000 Advanced Server 
• Microsoft Windows 2000 Datacenter Server 
• Microsoft Windows Server 2003 Enterprise Edition 
• Microsoft Windows Server 2003 Datacenter Edition 

※Windows Server 2003 Standard Edition での /PAE スイッチ及び /3GB スイッチについて、多くの情報が存在しておりマイクロソフト社に確認したところ、「テスト環境での使用を前提としている。」との回答がありました。
弊社は、Windows Server 2003 Standard Edition では /PAE スイッチと /3GB スイッチは使用しないとします。

資料Web
(1)「サーバーでメモリーサイズが少なく表示される - Servers」(IBM)
(2)「Windows Server 2003 および Windows 2000 では大容量メモリのサポートが使用できる 」(Microsoft)
(3)「4 GB RAM チューニング機能と物理アドレス拡張のスイッチの説明」(Microsoft)
(4)「ASP.NET ページを表示すると、「System.OutOfMemoryException」エラー メッセージが RAM の 3GBがされるサーバーに表示できます。」(Microsoft)



[追記]
Windows Server 2003 サービスパック 2 により状況が変わっている場合がありますこと追記します。
弊社テストの中でサービスパック 2 について、レポートすべき情報あれば、随時情報提供をしたいと思います。

◇余談
IIS 6 のヘルプに以下の説明があります。

─────────────────
ワーカー プロセスをリサイクルする
 リサイクルを使用できる状況
 ・修復できない Web サーバー上で、問題のあるアプリケーションをホストしている場合
 ・問題の特定ができない、または断続的に問題が発生する場合
 ・パフォーマンス監視の結果、アプリケーションのメモリリークが疑われる場合
─────────────────
上記のヘルプによれば、「積極的にリサイクルを使用する」ことは、不具合やメモリリークなど問題があるアプリーケンションとなりますが、4GB RAM 環境下における OSの仕様、ASP.NET 1.1 の仕様が関係している問題の解決であり、この点をヘルプに追記すことをマイクロソフト社にリクエストをしました。

なお、弊社製品は、マイクロソフト社のテストによりメモリーリークなどアプリケーションに全く問題がないことが確認されています。