連載
» 2015年01月19日 14時49分 公開

連載:アプリケーションの運用監視:第2回 アプリの運用監視サービスを活用する (3/4)

[亀川和史,著]

性能分析を行う

 New RelicとApplication Insightsでは死活監視以外にも性能分析を行える。また、サーバーのどこでボトルネックになっているか調査するためには、サーバー側でエージェント設定を行う必要がある。

New Relicでの性能分析

 New Relicのエージェントを追加した仮想マシンにアプリをデプロイすると、数分後にはNew Relicのポータルに性能情報が表示される。.NET CLRの状態だけではなく、データベースにおけるクエリの使用率、URLごとの応答時間といった情報を確認することが可能だ。左側のペーンの[MONITORING]−[Overview]を選択すると、概要が表示される。

アプリの応答時間に関する情報の概要をNew Relicで取得/表示したところ アプリの応答時間に関する情報の概要をNew Relicで取得/表示したところ
  (1)Webアプリの応答時間。
  (2)何割の人が応答に満足しているかの割合(1.0で全員満足)。「Apdex: Measuring user satisfaction」を参照。
  (3)サーバースループット。

 同様に[MONITORING]−[Database]を選択すると、データベースに関連する性能分析の結果が表示される。

データベースに関する性能分析をNew Relicで取得/表示したところ データベースに関する性能分析をNew Relicで取得/表示したところ
  (1)指定した時間間隔内でより多くのCPUを使用したSQL(間隔は上部の[TIME PICKER]で指定する)。
  (2)(1)の上位5位をグラフ化したもの。
  (3)データベースのスループット。
  (4)データベース応答時間。

 [MONITORING]−[Transactions]を選択すると、時間がかかった処理をWeb/非Webのトランザクションに分類して表示できる。

 New Relic Proにアップグレードすればアプリケーションでの負荷が高いクエリのSQL詳細が参照できるようになる(参考:Database and slow SQL dashboard)。

 SQL Serverの場合はGitHubにプラグインが公開されており、追加することも可能だ(参考:newrelic-platform/newrelic_microsoft_sqlserver_plugin)。

Webページの処理で多くの時間を使ったURLや処理をNew Relicで表示したところ Webページの処理で多くの時間を使ったURLや処理をNew Relicで表示したところ
  (1)全処理時間内でWebページ処理に消費されている割合。
  (2)指定時間内で上位5位のURL消費割合。

 New RelicエージェントはWebアプリの性能を調査するためのもので、サーバー全体の性能傾向は見られない。そのような場合、New Relicのサーバーモニターを別途インストールすることで、より全体的な性能情報を取得することが可能だ。エージェントとモニターを同時にインストールすることもできる。

 ポータルから[SERVERS]を選択すると各OS用のモニターをダウンロードすることが可能だ。

New Relicのサーバーモニターのダウンロード画面 New Relicのサーバーモニターのダウンロード画面
  (1)モニターをインストールするOSを選択すると、ダウンロードのインストラクションが表示される。
  (2)Windowsを選んだ場合の32bit/64bit版および、MSI/ZIPファイルのどれをダウンロードするかを選択する。

 Windows Server 2012であれば、Windows用64bitのMSI版をダウンロードしサーバー上で実行すればよい。New Relicのサポートリストには入っていないが、筆者の自己責任でAzureのWindows Server 2012 R2にインストールしたが、レポートは正常に送られていた。インストーラーの実行画面を以下に示す。

New Relicのサーバーモニターインストールの初期画面 New Relicのサーバーモニターインストールの初期画面
  (1)次へ。
  (2)インストール中止。

 アプリのエージェントと同じようなインストール画面が表示される。エージェントのインストールと同様に、サーバーモニター用のインストールキーを指定する。インストールが完了ししばらくすると、ポータルにサーバーの状態が表示される。

New Relicで収集したサーバー性能の概要 New Relicで収集したサーバー性能の概要
  (1)CPU使用率。
  (2)物理メモリ使用率。
  (3)ディスクI/O状況。
  (4)ネットワークI/O状況。
  (5)プロセスごとのCPU、メモリ使用率。

 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.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。