LoginSignup
5
1

More than 3 years have passed since last update.

NewRelicを利用して性能問題を簡単に切り分けることができた事例の紹介

Last updated at Posted at 2019-12-10

はじめに

NECの井元です。
NewRelicさんからAdvent Calendarのお誘いを受けましたので、機能説明や使い方などは本家の方にお任せするとして、こちらではNewRelicを使って性能問題の原因を簡単に切り分けることができた事例を紹介します。

負荷テストでの利用

とあるプロジェクトのオンプレからAWSへのリフト案件の性能検証でNewRelicを活用しました。
今回、以下の構成でEC2インスタンスにBrowser, APM, Infrastructureエージェントを、ELB、RDSサービスにはAWS連携でINFRASTRUCTUREエージェントを設定しています。

01.png

性能評価では、JMeterを使って一定の負荷をかけ、負荷がかかった状態でブラウザからアクセスし、その表示時間、リソース使用量などを測定しました。

性能問題の検出

性能検証の結果、スマホ経由でのある処理が数回に一度の割合で10秒近くかかっていることが判明しました。
まずは、APMの応答時間を見てみます。平均 0.2秒近くでサーバ側には問題がないように見えます。

02.png

つぎに、BROWSERの PageViewで表示時間を見てみます。
あきらかに、Page Renderingがその大部分の時間をしめていることがわかります。

03.png

さらに、原因を分析するため Sssion Trace で代表的なトレースを確認してみます。

04.png

domContentLoadEventEnd から domComplete まで、つまりファイルのダウンロードなどは完了し、画像、HTMLファイルなどのブラウザでのレンダリング処理が10秒近くかかっています。
サーバ、ネットワークは問題なく、HTML、CSSなどの描写処理が原因であることが数分の解析で判明し、デザイナーに結果と合わせて対策を依頼しました。

このように、NewRelicによる測定を仕込んでおくことで、性能検証で問題があった時の切り分けが数分で簡単にできます。

良かった点

NewRelicを使ってモニタリングしながら性能テストをすると、テスト実行時のスループットの状況、リソースの使用量、トレースなどをその時間までさかのぼって確認、分析することができます。
特に、今回のように数回に一度のみ発生する問題では、発生条件を確認して再現する必要がなく、その時点の挙動、性能状況から原因を分析することができるため、簡単に性能問題の原因を特定することができます。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1