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
[追記]
Windows Server 2003 サービスパック 2 により状況が変わっている場合がありますこと追記します。
弊社テストの中でサービスパック 2 について、レポートすべき情報あれば、随時情報提供をしたいと思います。
◇余談
IIS 6 のヘルプに以下の説明があります。
─────────────────
ワーカー プロセスをリサイクルする
リサイクルを使用できる状況
・修復できない Web サーバー上で、問題のあるアプリケーションをホストしている場合
・問題の特定ができない、または断続的に問題が発生する場合
・パフォーマンス監視の結果、アプリケーションのメモリリークが疑われる場合
─────────────────
上記のヘルプによれば、「積極的にリサイクルを使用する」ことは、不具合やメモリリークなど問題があるアプリーケンションとなりますが、4GB RAM 環境下における OSの仕様、ASP.NET 1.1 の仕様が関係している問題の解決であり、この点をヘルプに追記すことをマイクロソフト社にリクエストをしました。
なお、弊社製品は、マイクロソフト社のテストによりメモリーリークなどアプリケーションに全く問題がないことが確認されています。