perfmonを使用してWebアプリケーションを監視し、長期にわたるアプリケーション固有の傾向を確認します
-
06-07-2019 - |
質問
アプリケーションが何をしているのかをより良く見たい。 ASP.NETおよび.NETカウンターを監視していますが、何が起こっているのか、どのくらいの速さで起こっているのかについて、より深い視点が必要です。これに関するベストプラクティスは何ですか?また、Microsoft.NET環境で利用可能な特定のガイダンスまたはドキュメントはありますか?これにはエンタープライズライブラリを使用しますか?アプリケーションにデータを取り込むために、すでにライブラリの一部を使用しています。
この時点での最大の痛み:
- アプリケーションのトラブルシューティングの方法がほとんどない
- 既存のパフォーマンスへの影響を最小限に抑える
- ヒットミスなどの点で、Enjimクライアントが何をしているのかが見えない
- 非常にユニークなパフォーマンスの監視(mem cache server deadなど)
ボーナス
- MOM内で収集されたデータを使用する
- このデータを使用して、アプリケーションが最適な状態で最適化されるようにします
- システムの保守性を高めることで、私たちのオペレーション担当者がこのシステムを簡単に管理できるようになります。
解決
フォーカスする必要がある場所は2つあります。
最初に、テスト環境で、コードプロファイリングツール(VSに組み込まれているようなもの)を使用して、実際に実行されているコードパスを確認する必要があります。これにより、アプリの詳細が明らかになりますが、実稼働環境と負荷の適切なシミュレーションを設定するのは難しく、時間がかかります。
次に、本番コードでカスタムパフォーマンスカウンターを使用します。独自のパフォーマンスカウンターを作成し、セットアップユーティリティを使用してインストールします。これにより多少の複雑さが加わりますが、Webアプリケーションが何をしているのかを洞察するためにそれらを持っていることに勝るものはありません。
パフォーマンスカウンターを更新する行為は最小限です。オーバーヘッドを追加できるのはパフォーマンスモニターの読み取り値です(直感に反する、私は知っています)。
使用しているEnterprise Library Libraryのバージョン(3.1)は、カスタムパフォーマンスカウンターを直接サポートしていませんが、それ自体にいくつかのカウンターをインストールします。これらはあなたが望むものではないと思います。
他のヒント
運用のための設計をご覧ください。これには、アプリケーションの計測に役立つツールが含まれます。これらのツールは、ヘルスモニタリングのためにMOMで使用できるアプリケーションのヘルスモデルの作成にも役立ちます。