2009-05-09 3 views
1

私はこのたくさんのコードベースを持っている:私は私のIISサーバーを管理していないので、私は、システムログを参照するか、計測を行うことはできませんワーカープロセスをリサイクルするために必要な使用量の目安は?

byte[] contents = FileUtils.FileToByteArray(FileOfGartantuanProportions); 

、私はちょうど私の要求を見ることが復帰に失敗し(死の白いページ)、時にはYSODがOut of Memoryエラーである。

IIS5またはIIS6が作業プロセスを終了させるか、または単に終了して終了する前に、メモリにロードできるデータの大半は誰かが知っていますか?

いっそ、APIの呼び出しIメイク、のようなものがあります:私のXP Proのワークステーションで

if(!IsEnoughMemoryFor(FileOfGartantuanProportion.Length)) throw new SomeException() ; 

は、私は正常に非常に大きなバイト配列に対処するためのASP.NETページをゲットすることができますこれらの結果は明らかに実際の共有サーバーには当てはまりませんでした。

答えて

1

TechEdのTess Ferrandezの話によれば、Private Bytesが約800MB、またはVirtual Byteが約1.4GBの場合、32bitサーバーでメモリ不足例外を見ることができます。

彼女はまた、これはここにある理由についての良い記事を持っていた:

A restaurant analogy

あなたがセッションに直列化しているものを考える含ま彼女が作っ

その他の見所 - 例えば1MBのデータセットを直列化そのデータがシリアライズおよびデシリアライズされるたびに、15〜20MBのメモリが各ページに使用されます。

1

IIS6をネイティブモードで使用すると、各アプリケーションプールの制限を構成できます。

IIS5では、machine.configの要素をシステムメモリ全体の割合として使用して設定されています。デフォルトは60%です。

1

IIS 6の場合、memory recycling limits PeriodicRestartPrivateMemoryとPeriodicRestartMemoryが実行される可能性があります。私はXP上では、物理メモリの60%だと思います。少なくともそれは私がasp.net 1.1について覚えていることです。私は2.0についてはわかりません

YSODはおそらく、大きな割り当ての周りでtry/catchで処理するのが最良です。

関連する問題