New RelicとApplication Insightsでは死活監視以外にも性能分析を行える。また、サーバーのどこでボトルネックになっているか調査するためには、サーバー側でエージェント設定を行う必要がある。
New Relicでの性能分析
New Relicのエージェントを追加した仮想マシンにアプリをデプロイすると、数分後にはNew Relicのポータルに性能情報が表示される。.NET CLRの状態だけではなく、データベースにおけるクエリの使用率、URLごとの応答時間といった情報を確認することが可能だ。左側のペーンの[MONITORING]−[Overview]を選択すると、概要が表示される。
同様に[MONITORING]−[Database]を選択すると、データベースに関連する性能分析の結果が表示される。
[MONITORING]−[Transactions]を選択すると、時間がかかった処理をWeb/非Webのトランザクションに分類して表示できる。
New Relic Proにアップグレードすればアプリケーションでの負荷が高いクエリのSQL詳細が参照できるようになる(参考:Database and slow SQL dashboard)。
SQL Serverの場合はGitHubにプラグインが公開されており、追加することも可能だ(参考:newrelic-platform/newrelic_microsoft_sqlserver_plugin)。
New RelicエージェントはWebアプリの性能を調査するためのもので、サーバー全体の性能傾向は見られない。そのような場合、New Relicのサーバーモニターを別途インストールすることで、より全体的な性能情報を取得することが可能だ。エージェントとモニターを同時にインストールすることもできる。
ポータルから[SERVERS]を選択すると各OS用のモニターをダウンロードすることが可能だ。
Windows Server 2012であれば、Windows用64bitのMSI版をダウンロードしサーバー上で実行すればよい。New Relicのサポートリストには入っていないが、筆者の自己責任でAzureのWindows Server 2012 R2にインストールしたが、レポートは正常に送られていた。インストーラーの実行画面を以下に示す。
アプリのエージェントと同じようなインストール画面が表示される。エージェントのインストールと同様に、サーバーモニター用のインストールキーを指定する。インストールが完了ししばらくすると、ポータルにサーバーの状態が表示される。
CPU使用率の高いアプリ、ディスクI/O、ネットワーク使用率などが取得できる。これらの情報はAzureのポータルでも参照できるが、New Relicのポータルならより詳細な情報を参照可能だ。
サーバーの全体的な情報やIISアプリの情報はこのように手軽に取得できる。IISを使わないスタンドアロン型のアプリはその構成ファイルでNew Relicエージェントの指定を行えばよい(参考:Instrumenting non-IIS apps)。
WCFアプリの場合も同様に設定を行えばよい。詳細はNew Relicのドキュメント「Instrumenting WCF applications」を参照してほしい。
次にApplication Insightsを使用して性能分析を行う方法を見ていこう。
Copyright© Digital Advantage Corp. All Rights Reserved.