8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Instana Agentの使用リソース制限を試してみた

Last updated at Posted at 2023-03-08

はじめに

Instana Host Agentをインストールするときに気になるのが、そのサーバーで動いているアプリケーションやサービスへ影響を与えないかということです。Instana Agentの使用するリソースを制限する設定についてドキュメントに記載がありますので、実際に設定して試してみました。

本手順は以下の環境で実施しています。

  • クライアントPC: macOS
  • Instana Backend: Self-Hosted Build 241-3
  • Instana Agent: RHEL 7.9

設定する前のリソース使用状況

デフォルトでは、使用リソース制限は設定されていません。
Instana AgentのUIから確認したところ、ある時間帯において、CPUは53%、メモリは約420MB使用していました。

image.png

設定した内容

対象のサーバーにログインして、以下のファイルを作成します。

cat <<EOF > /etc/systemd/system/instana-agent.service.d/20-resource_limits.conf
[Service]
CPUAccounting=true
CPUQuota=25%
MemoryAccounting=true
MemoryLimit=512M
EOF

そして、以下のコマンドで設定を読み込みます。

systemctl daemon-reload

Statusコマンドでも、ファイルが読み込まれていること、メモリのlimitが設定されていることが読み取れます。ここではCPUの設定は確認できませんでした。

[root@instana-server]# systemctl status instana-agent
● instana-agent.service - "Instana(tm) agent."
   Loaded: loaded (/usr/lib/systemd/system/instana-agent.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/instana-agent.service.d
           └─20-resource_limits.conf, custom-environment.conf
   Active: active (running) since 金 2022-11-11 14:34:54 JST; 3 months 25 days ago
 Main PID: 1563 (java)
    Tasks: 202
   Memory: 511.9M (limit: 512.0M)
   CGroup: /system.slice/instana-agent.service
           ├─ 1563 /opt/instana/agent/jvm/bin/java -XX:+UnlockDiagnosticVMOptions -Xmx636641K -XX:MaxDirectMemorySize=70737K -XX:+UseSerialGC -Xmn32m -Xss512k -XX:InitialCodeCache...
           └─10906 /opt/instana/agent/data/repo/com/instana/ebpf-sensor/0.1.7/ebpf-sensor-0.1.7.bin

ドキュメントに記載のあるMemoryMaxはRHEL7のsystemdでは使用できないようで、MemoryLimitを使用しています。使えないオプションを使用すると、systemctl status instana-agentの結果に以下のメッセージが出力されます。

systemd[1]: [/etc/systemd/system/instana-agent.service.d/20-resource_limits.conf:5] Unknown lvalue 'MemoryMax' in section 'Service'

どのオプションが使用可能かはman systemd.resource-controlコマンドで確認することができます。

上記の値は検証のために設定した値であり、推奨値ではありません。
特にメモリの制限は想定外の事態を引き起こしかねないので慎重になった方が良さそうです。(参考

設定した後のリソース使用状況

設定後のリソース使用状況を確認すると、CPUが25%以下に制限されていることが確認できました。
メモリは元々の使用量よりも大きい上限を指定したので特に変化はありませんでした。

CPUの負荷が張り付きになっているようなグラフになっていますが、これはCPUの割り当てに対しての比率をベースにしているようで、割り当てられた25%は使い切っているのでこのようなグラフになると解釈しました。念のため確認しましたが、サーバー全体の負荷が上がっているわけではありませんでした。

image.png

まとめ

Instana Agentの使用リソース制限について、設定通りに動作することを確認できました。
AgentのCPU使用率はAgent起動時に高くなる傾向があるので、少な過ぎない程度に上限を設定しておくのは効果的ではないかと思いました。その分、起動により時間がかかると思うのでトレードオフになると思います。

今回はOSに直接インストールする場合について検証しましたが、Kubernetes/OpenShiftの環境では、Instana Agentを定義するDaemonSetのresource limitがデフォルトで設定されていますので、その値を基準に見直す形になると思います。特に監視対象が多い場合など、使用リソースを制限するだけでなく、使用リソース制限の上限を上げる可能性があることも考慮に入れる必要がありそうです。

おわりに

Instana Agentの使用リソース制限について試してみた内容をまとめました。
少しでも参考になれば幸いです。

8
5
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
8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?