3

停止点まで速度が低下しているサーバーを調べるように依頼されました。サーバーには何百もの従来の ASP サイトが実行されており、いくつかのコードを調べると、ADODB.Recordset (およびその他の) オブジェクトが開かれ、使用されているが、破棄されていない (Nothing に設定されている) インスタンスが多数あることがわかります。私がまだ発見していない他の問題もあるかもしれないことを感謝します...

元のコードの開発者は、サイトを最初に展開した後、何年も問題なく動作したと述べているため、一切の責任を負うことを拒否しています.

残念ながら、すべてのサイトのすべてのコードを調べるには、1 日で十分な時間はありません。したがって、メモリ使用量、リーク、またはこのサーバーの停止の原因を診断するのに役立つ可能性のあるものを監視できるアプリケーションはありますか?

当初、サイトは Win2003、IIS6 にありましたが、現在は Win2012、IIS8 に移行されています。新しいサーバーでもスローダウンが発生しているため、ハードウェアの障害ではないと確信しています.

任意の提案をいただければ幸いです。ほとんどの古典的な ASP 開発者が現在 .NET を使用していることに感謝しているため、これにも ASP.NET でタグ付けしたことに注意してください。しかし、彼らの経験から何かを提案できるかもしれません...

4

3 に答える 3

1

開いているすべての接続が高負荷下で問題を引き起こす可能性がありますが、ASP Classic に戻っても、適切なガベージ コレクションがいくつかありました。開いたままのオブジェクトと接続は、ページの処理が完了すると自動的に閉じられました。参照: https://stackoverflow.com/a/1613337/25163

私は過去に粗野なASP プロファイラーを使用して、現在も管理している ASP/VBScript サイトの特定のボトルネックがどこにあるかを調べました。ロード時間に問題のある特定のページのログを確認し、それらを最初にターゲットにします。

そのためのプログラムをまだお持ちでない場合は、いくつかのプロジェクトで無料版のSmarterStatsを使用しました。ただし、SmarterStats を実行するサーバーは、ASP.NET サイトを実行できる必要があります。

最も問題のある領域をもう少し調査しないと、他のアドバイスは暗闇の中のショットになります. 特に、実際の問題は、方程式のデータベース側にある可能性が高いためです。問題のあるページのプロファイリングは、それを見つけるのに役立ちます.

于 2013-03-07T20:08:11.007 に答える
0

私の経験から、(何も設定されていない) レコードセットを破棄しても、パフォーマンスには影響しません。次のようなことを確認する必要があります。

  • データベース接続が開いていて、閉じられていません。
  • アプリケーション変数の使用 (これらは大量のメモリを消費します)。
  • セッション変数の過度の使用 (ある程度まで)。
  • 不要なデータをプルするか、SQL クエリでページングを修正しません。
  • 過剰なファイル操作。
于 2013-03-08T08:19:30.833 に答える