• ログイン

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

スレッドプロファイラツール

スレッドプロファイラは、アプリケーションのボトルネックを特定するために実運用環境で使用できる、影響の少ないプロファイリングツールです。スレッドプロファイラは、各スレッドのスタックトレースを定期的(100ms)にキャプチャし、指定された期間で動作します。指定された期間が終了すると、スタックトレースが集約され、ツリーが構築されます。ツリー内のコールカウントは、同じコンテキストでスタックトレース内にその関数が存在した回数に対応します。

コールツリーは実行全体を捉えることはできませんが、十分に大きなサンプルはアプリケーションの動作をよく表しています。これにより、ほとんどの時間が費やされているアプリの"ホット" の機能についての洞察が得られます。この範囲では、0.05%未満しかサンプリングされていないエントリは省略されます。

対応エージェント

この機能は、特定のエージェントやバージョンでのみ利用可能です。

  • Javaです。Agentバージョン1.2.004.6以上

  • .NETに対応しています。

    • フレームワーク。Agentバージョン2.12.146.0以上
    • .NET Core 2.0を使用しています。Agentバージョン8.3.360.0以降(Windowsのみ)
    • Linux: .NET Core 3.0以上、エージェントバージョン8.23以上
  • Pythonです。Agentバージョン1.7.0以上

  • Rubyを使用しています。Agentバージョン3.5.5以上

プロファイラーの起動

スレッドプロファイラ機能は、デフォルトで有効になっています。また、エージェントの設定ファイルでオン/オフを切り替えることができる場合もあります。

  • Java: thread_profiler.enabled
  • NET:.NETアプリでスレッドプロファイラーを無効にすることはできません
  • Python: thread_profiler.enabled
  • Ruby: thread_profiler.enabled

この機能を有効にすると、ユーザーインターフェースからスレッドプロファイラを表示することができます。

  1. one.newrelic.com > APM> (select an app)> Events> Thread profiler にアクセスします。
  2. プロファイラーを実行するホストを選択します。
  3. プロファイリングセッションの継続時間を設定します。
  4. Select Start profiler.

これにより、エージェントは次のハーベストサイクル(1分ごと)にスレッドプロファイラを起動し、指定された期間のデータを取得するようになります。サンプル取得時に実行可能な状態であるかどうかに関わらず、スレッドのバックトレースを記録します。スリープしているスレッドやIOでブロックされているスレッドがコールツリーに表示されることがあります。

one.newrelic.com > APM> (select an app)> Events> Thread profiler: このページを使って、スレッドプロファイラーの期間の設定を定義し、結果を表示します。

プロフィールデータを見る

プロファイラの実行が終了すると、エージェントがプロファイルデータを報告します。コールツリーは、 Thread profiler ページに自動的に表示されます。コールツリーのパーセンテージは、プロファイリングセッション中に各コールパスが出現したスレッドバックトレースサンプルのパーセンテージを表しています。データ収集はPROFILE COLLECTEDの時間に開始されました。

このページでは、ツリーの結果を色分けしています。

  • 赤。30%以上の割合
  • 黄色。割合が10%を超えるもの
  • ブラック割合が10%未満

以下を行う場合...

操作...

スレッドのプロフィール情報の表示方法の変更

Tree settings で利用可能なオプションを選択し、 Refresh tree を選択します。

情報表示量の変更

コールツリーの上にある「 Expand 」または「 Collapse 」オプションを選択するか、コールツリーの任意の行で名前または矢印を選択します。

コールツリー内の任意の行のサマリー情報を表示する

ラインにマウスオーバーします。

スレッドプロファイルの結果を他の人にメールで送信

Select Share this profile.

別のセッションを開始したり、別のスレッドプロファイルを表示する

選択 すべてのプロファイルに戻る.

エージェントの考慮事項

どのエージェントを使用するかによって、スレッドプロファイリング機能には追加の考慮事項があります。

Copyright © 2022 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.