2010-12-14 38 views
0

私のasp.netアプリケーションをプロダクションで分析しているときに気づいた奇妙な問題について説明したいと思います。アプリケーションプールのリサイクル時に奇妙なメモリが増加する

通常、アプリケーションは80-90 MBのメモリフットプリントで動作します。これはこれまでメモリリークが検出されていないので安定しているようです。それでも、アプリケーションプールがリサイクルするときに問題が発生します(共有ホスティングを使用していますが、アプリが20分または30時間ごとにアイドル状態のいずれかでログが発生したと判断します)。問題は、リサイクルで使用されたメモリがほぼ倍増していることです。これは何の説明もなく160-170 MBになります。これは混乱しています。なぜなら、リサイクルがメモリと他のすべてのリソースをパージする必要があるという共通の主張であるからです。システムはこの量のメモリを約7〜8時間保持しています。メモリの使用量は通常のレベル(90〜100MB)に低下しますが、明らかに理由はありません(少なくとも私にはわかりません)。すべての時間、アプリケーションはうまくいくように見えます - ユーザーにとっては、サイトの可用性に大きな遅れやトラブルはなく、すべてのことはOKだと思われます。これまでのところ苦情は​​ありません。時間の経過に伴うメモリ消費量を見ると、ステップ関数のように見えます。

重要なことは、テスト環境でこの種の動作を再現できなかったことです。時々、プロバイダの管理者から、私のアプリで許可されている以上のリソースが使用されているというメモがありました。

私は知りたいことがあります - アプリケーションプールのリサイクルがすべてのメモリリソースを解放しないというシナリオはありますか?私が焦点を当てるべきアドバイスやガイドラインはありますか?私はこの分野の専門家ではありませんが、リサイクルの重複、リサイクルのシリアライゼーションの問題、カップルの問題などについて読んでいます...アイデアはありますか?同様の経験ですか?

おかげ

答えて

0

この投稿は、サイトのアプリケーションプールがリサイクルされたときに何が起こるかのかなり良い概要を説明します:http://blogs.msdn.com/b/tess/archive/2006/08/02/asp-net-case-study-lost-session-variables-and-appdomain-recycles.aspx

私の推測では、あなたのメモリ使用量が原因ごとに、次のJITコンパイルに増加していることですアプリケーションプールのリサイクル私の推測では、共有ホストには、開発サーバーとは異なる構成と環境設定があります。

IMHO、共有ホストで約100メガバイトのメモリを使用している場合、DiscountASP.NETやGoDaddyのようなホストであれば問題を求めています。あなたがそのウェブサイトについて気にしているなら、VPSやより多くの設定可能なホスティングを手に入れて、より高いメモリ制限のプレミアムを支払うことができます。

関連する問題