IISのアプリケーションで使用されるメモリを制限する方法は?


15

IISワーカープロセスは、サーバーで大量のメモリを使用しています。各アプリケーションが使用できるメモリを制限したい。仮想メモリ制限またはプライベートメモリ制限の制限を設定する必要があるかどうかがわかりません。IISの各アプリケーションは、独自のアプリケーションプールにあります。

プライベートメモリ制限を500MBに、仮想メモリ制限を3GBに設定した場合。アプリケーションプールはいつリサイクルされますか?500MBに達した後、または3GBに達した後にリサイクルされますか。


あなたが話しているこれらの「仮想メモリ制限」と「プライベートメモリ制限」オプションはどこにありますか?
パニック大佐

1
@ColonelPanic IIS7.5では、アプリプールのAdvanced Settings -> Recyclingセクションの下にあります。
ngm

回答:


15

IISはこれらの制限の両方を尊重します。

500MBのプライベートバイト制限を設定すると、ワーカープロセスが501MBをコミットしようとするとすぐに、IISは新しいワーカープロセスを起動し、古いワーカープロセスを強制終了します。

3GBの仮想メモリ制限を設定した場合、ワーカープロセスが3.001GBを予約しようとするとすぐに、IISは新しいワーカープロセスを起動し、古いワーカープロセスを強制終了します。

64ビットプラットフォームを使用している場合は、ASP.NETアプリが積極的に仮想メモリを予約していることに注意する必要があります。例として、88MBのプライベートバイトのみを使用するファームにアプリがありますが、現在は5.4GBの仮想サイズになっています。仮想メモリの予約は、サーバー上の物理RAMの機能だと思います。64ビットプラットフォームでは、仮想メモリの大部分を予約してもパフォーマンスへの影響はゼロであることを理解することも重要です。

基本的に、IISサーバーでメモリ消費の問題がある場合、制限する設定はプライベートメモリ/バイトです。これは実際のメモリ使用量に対応します。


Dominicに感謝します。500Mbのプライベートメモリを使用するようにプロセスを設定し、その制限を超えたら、リサイクルせずにディスク上の仮想メモリの使用を開始する方法はありますか?
キショア

1
私が知っていることではありません。ASP.NETアプリケーションでは、バイトのコミットの問題が発生すると、基本的に3つのオプションがあります。1.制限に達したとき、または夜間に夜間にプロセスをリサイクルします(明らかに好ましくありません。使用時間帯にリサイクルする場合は、セッションデータを正しく管理することを忘れないでください)。サーバーファームへの移動、または別のファームへの移動は、状況に応じて最も簡単なソリューションになります)。3.メモリをより効率的に使用するようにアプリケーションを変更します。(最適なオプションですが、実装が難しい場合があります)
ドミニクD

また、いくつかのASP.NETアプリでメモリが積極的に予約されていることにも気付きました。誰もがこのトピックに関する良いリソースを勉強することをお勧めできますか?私はそれがどのように、なぜ起こるのかについてもっと理解したいと思います...私が観察することは、より多くのメモリが利用可能であるほど、アプリがより多くのメモリを割り当てることです。
トムパジョレック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.