2011-01-05 22 views
1

おはようございます!IISでのASP.NETメモリ使用量は、DevEnvよりも大きくなります。これは正常ですか?

いくつかの外部ページからデータを取り出し、関連するビットを解析してテーブルに表示するASP.NETアプリケーションがあります。取得される全データは3〜4MBで、その結果のページは約1MBです。私は検索のために同期WebRequest GetResponseを使用していますが、同じ問題が非同期BeginGetResponse/EndGetResponseプロセスを使用して存在していました。 データベースへのアクセス、セッション記憶域なし、キャッシュなし、約100個のオブジェクト(合計1MBのデータ)のインメモリー・リスト、およびAJAX(AjaxControlToolkit)の量が豊富です。この問題は、たとえIISを再起動しても、アプリケーションの最初の実行時に表示されます。

問題は:私は私のdevのコンピュータ上でアプリケーションを実行すると

、最大電荷が1.5ギガバイトについてですコミット。タスクマネージャのVMサイズによって測定される最大のユーザーは、WebDev.WebServer.exe(600MB)です。アプリは完璧に動作します。

私がrent-a-server(IIS 7.5、1GB RAM)で実行すると、最大コミットチャージは3.8GB以上になります。最大ユーザーは2.7GBのw3wp.exeです。 IISは停止し、タイムアウトしたエラーページを吐き出します。 限られたサーバー予算と同時に複数のユーザーがいることを願って、私はパニックに陥っています。

これは正常ですか?サーバーのRAMを最大4GBまで増やせば十分でしょうか? 複数のユーザーがさらにメモリを必要としますか? 原因はAJAXかオブジェクトのリストですか?

ご迷惑をおかけして申し訳ありません。

答えて

1

をエンドレスループ。もちろん、開発環境が例外を投げた場合、私はその問題を捕まえて摘出するだろうが、そうしなかった。

ここで学んだ教訓は、さまざまなバージョンのIISとDevEnvが異なる方法でエラーに対応していることと、展開されるのと同じ設定でアプリケーションをテストする必要があるということです。

フィードバックをいただき、ありがとうございます。

0

あなたはdev環境のIIS 7.5でこれを実行しようとしましたか?
web.configの "true"ではなく、debug = "false"を確認してください

+0

非常に興味深い...私はIIS 5.1(XPに付属しているバージョン)をセットアップし、ネットワーク上でアプリを実行しました。 5.1サーバーの最大コミットチャージは1.3GBでした。これはWebDev.WebServerの場合よりも低くなっています。その後の実行では、実際にメモリ使用量が減少しました。 IIS 7.5はメモリの大部分を占めていますか? – Tom

+0

デプロイメント環境と同じステージング環境が必要です。 XP(IIS 5)でのテストは、IIS 7またはIIS 6でのテストとまったく同じです。 –

+0

意味があります。私のサイトはまだ生きていないので、実サーバをステージング環境として使用しています。私がdevサイトに同じ環境を設定していたのでは違いがありますか?私はそれが同じ結果を持っていると思います... – Tom

1

いくつかのデバッグツールを掘り起こし、プロダクションサーバのワーカープロセスダンプをキャプチャする必要があると思いますPerfMonとタスクマネージャだけでこの問題を適切に診断することができます。

私はあなたが始めるべきしばらく前にスタックオーバーフローにこの答えを投稿:私たちの古い宿敵:まあ、いくつかのハードワークの後、私は犯人を特定した

CLR out Of Memory Exceptions

関連する問題