APMインサイト Pythonエージェント パフォーマンスレポート

パフォーマンステストを行った環境

  • OS:Ubuntu 20.04.1 LTS
  • CPU:6-core
  • Memory:15.3GB
  • Python Version:Python 3.8.10
  • Application framework:Django 4.0.4
  • テスト実施期間:2時間

アプリケーションの応答時間への影響

4つのサンプルPythonアプリケーションインスタンスを比較します。
・APMインサイト Pythonエージェント:あり/なし
・それぞれ1分あたり300トランザクションと600トランザクションを実行
データは2時間にわたって収集しました。

1分あたり300トランザクション:

応答時間の概要 エージェントなし エージェントあり
平均応答時間(ミリ秒) 18852 19274
ピーク応答時間(ミリ秒) 23406 24106

APMインサイト Pythonエージェントの有無でアプリケーションを実行した際に観測される平均時間差は約2.22%です。
以下のタイムラインチャートは、過去の傾向を表示しています。

1分あたり600トランザクション:

応答時間の概要 エージェントなし エージェントあり
平均応答時間(ミリ秒) 37620 38777
ピーク応答時間(ミリ秒) 47792 48413

APMインサイト Pythonエージェントの有無でアプリケーションを実行した際に観測される平均時間差は約3.05%です。
以下のタイムラインチャートは、過去の傾向を表示しています。

CPU使用率への影響

APMインサイト PythonエージェントによるCPU消費量は、主にインストルメントされたメソッドの数とログレベル(デフォルトは DEBUG)によって異なります。
以下に示すデータは、APMインサイト Pythonエージェントの有無にかかわらず並行して実行されたアプリケーションのデータをまとめたものです。

1分あたり300トランザクション:

CPU使用率 エージェントなし エージェントあり
平均使用率 (%) 0.49 0.7

アプリケーションが1分あたり300件のトランザクションで実行された際、エージェントはCPU使用量の合計の平均0.21%を消費しました。
以下のタイムラインチャートは、過去の傾向を表示しています。

 

1分あたり600トランザクション:

CPU使用率 エージェントなし エージェントあり
平均使用率(%) 1.53 2.51

アプリケーションが1分あたり600トランザクションで実行された際、エージェントはCPU使用量の合計の平均0.98%を消​​費しました。
以下のタイムラインチャートは、過去の傾向を表示しています。

物理メモリ(RAM)使用量への影響

デフォルトでは、APMインサイト Pythonエージェントはパフォーマンスデータを収集し、それを1分ごとに独自のサービスにプッシュします。
そのため、ユーザーメモリのフットプリントは最小限で、一時的なものになります。

【重要なポイント】
メモリ消費量は1分間に収集されるデータの量に正比例するため、サンプリング係数またはトランザクショントレースしきい値を下げると、RAM使用量が増加します。

以下のデータは、エージェントの有無にかかわらず並行して実行されたアプリケーションのデータをまとめたものです。

1分あたり300トランザクション:

メモリ使用量 エージェントなし エージェントあり
平均使用率(%) 0.3 1.56

アプリケーションが1分あたり300トランザクションで実行された際、エージェントは合計メモリ使用量の平均1.26%を消費しました。
以下のタイムラインチャートは、過去の傾向を表示しています。

1分あたり600トランザクション:

メモリ使用量 エージェントなし エージェントあり
平均使用率(%) 0.31 4.26

アプリケーションが1分あたり600トランザクションで実行された際、エージェントは合計メモリ使用量の平均3.95%を消費しました。
以下のタイムラインチャートは、過去の傾向を表示しています。