2010-12-02 7 views
4

これは問題です。私たちのプロダクション環境(ASP.Net)では、私たちのサーバーは膨大な量のメモリと多数のユーザー/セッションを持っています。私のコンピュータには8ギガがあり、私は唯一のユーザーです。プロダクションでは、(ほとんど)System.OutOfMemoryExceptionを取得しています。.Net CLRメモリの使用を制限する

この背景情報は、CLRに私がメモリのギグ以下しか持っていないと思うようにすることができますか? IIRCには、Java用にこれを行うためのコマンドラインオプションがあります。

もう1つの選択肢は、メモリーをいっぱいにしてメモリーの少ない状態をシミュレートするために、いくつかの大きなオブジェクトを作成することです。しかし、アセンブリを変更する必要があり、巨大なオブジェクトがディスクにキャッシュされる可能性があります。

おすすめです?または他のオプション?

答えて

4

低メモリ/リソースシステムをシミュレートする方法の1つは、system virtual machineを作成し、必要なメモリ量を割り当てることです。 VMWareとMS仮想マシンの両方にこの機能があります。

低リソースマシンのシミュレーション以外にも、VMはテスト環境を管理するための優れた方法です。

+0

これはすばらしいアイデアです。実際には、すでにVirtualBoxインスタンスを実行しています!私はその可能性を考えたことはありません。あなたは勝つ! – Amy

+0

これは単純なJVM引数を置き換えるための厄介な.NETソリューションのようです。はい、OSは仮想メモリの低レベル処理を処理しますが、どのアプリケーションがメモリ優先度をより細かく制御するかについてはどうでしょうか。はい、各アプリケーションは同じ仮想アドレス空間を取得しますが、アプリケーションAが消費するメモリ量を制限したいので、OSにはアプリBに十分な空きがあります。 –

+0

@Kelly French:私の答えは.NETやJavaとは関係ありません。 Java仮想マシンではなく仮想マシンを使用して、メモリリソースの少ないOSをテストできる環境を作成することを示唆しています。答えは、プログラミング言語、フレームワーク、またはオペレーティングシステムに固有のものではありません。仮想マシンについて言及するとき、私はこれを意味します:http://en.wikipedia.org/wiki/Virtual_machine#System_virtual_machines –

1

プログラムがOutOfMemoryExceptionを受信するかどうかは、マシンに搭載されているRAMの量に依存しません。 OutOfMemoryExceptionは、プロセスが物理RAMのすべてのプロセスとは独立に同じである仮想メモリが不足したことを意味し

プロセス

  • 32対で仮想メモリの量に影響を与えることができる項目がいくつかありますクライアントマシン32

    である

    最良の推測は、サーバが64ビットプロセスである/ LARGEADDRESSAWARE等

  • スイッチ(Documentation
64ビットプロセス
関連する問題