ASP.NET Webアプリケーションをライブ監視するためのツールと方法
-
06-07-2019 - |
質問
多くの開発者は、ユーザーが"アプリケーションが(再び)遅いと言ったときの不快感を知っていると思います。
複雑なWebアプリケーションでは、(認識される)パフォーマンスが低下する多くの考えられる理由があります。データベースの応答が遅い、帯域幅の問題、キャッシュの不良などです。開発環境またはステージング環境。
今私の質問:
包括的な「ライブ」を提供するツールやメソッドのセットはありますか? IIS / ASP.NET / SQL Server運用システムの状態(パフォーマンスカウンターだけでなく)視覚的な方法で:
- 現在のHTTP要求(最後のn分など)
- 例外/タイムアウト
- 帯域幅データ
- 開いているデータベース接続/データベース呼び出しの数
- ...
主な目標は、パフォーマンスの問題の原因となっている問題を一目で(または詳しく調べた後に)確認することです。
解決
お探しのソフトウェアのカテゴリは「.netプロファイラ」です。または「.netトレーサー」。そのようなツールの1つとして、JetBrainsの dotTrace があります。ランタイムスタックトレースと、考えられるボトルネックを示すカウンターの配列を提供します。
他のヒント
前述のツールは確かに機能します。私たちの店では、より細かい情報が必要であり、独自のソリューションを構築しました(長い話:ツールや取得可能なデータについて議論するよりもコーディングが簡単でした)。
LogParser を使用して、 IISログを作成し、それらのログの出力レポートを作成します(結果コードの分類など)。
残りを取得するためにパフォーマンスカウンターとWMI値の組み合わせを使用しました-かなり簡単なC#を使用してこれらを読み取ることができます-これにより、Excelで表示または処理するために.csvなどにダンプすることができますコントロールセンターとしてページを更新しています。
おそらく、 IIS.net も、デバッグ、セキュリティなどのIISツールの優れたリソースとして見るでしょう。など。
urigのアドバイスに従いました SmartInspectと呼ばれるこのソフトウェアが見つかりました。
このロギング/監視ツールを知っている人はいますか?リアルタイムコンソールと開発者ライブラリの組み合わせのようです。
CLR 4.5には、アプリを再起動せずに、ASP.NETパフォーマンスをライブで監視するのに役立ついくつかの新しい機能があります。基本的に、コードを再JITして監視フックを含めることができ、クラス/メソッドなどで費やされた時間を検査できます
dotTraceやその他のプロファイリングツールはこれを自動的に活用するはずですが、チェックアウトする価値があります: C9-David BromanによるInside Re-JIT