linux topコマンドを使用してポッド内のCPU使用率インジケータを取得する方法

linux topコマンドを使用してポッド内のCPU使用率インジケータを取得する方法

現在、Linuxを使用してCPU使用率指標を取得するソリューションを探しています。トップ「コマンド。topコマンドを使用すると、すぐにCPU統計のみを提供することがわかりました。どのように取得できますか?ポッド内部の指標?どんなアドバイスも本当にありがとうございます。

答え1

Dockerの公式ドキュメントを読む:https://docs.docker.com/config/containers/runmetrics/

Linuxシステムでコンテナを実行する簡単な例:

システムのcgroupバージョンを確認してください。

[root@me ~]# stat /sys/fs/cgroup -f | grep Type:
    ID: 231088ed884bbbd7 Namelen: 255     Type: tmpfs

tmpfs eq cgroup v1

psユーティリティを使用してコンテナpidを取得します。

[root@me ~]# ps -e -o pid,ppid,pidns,comm | sort -k3,3 -u -r
    PID    PPID      PIDNS COMMAN
 581250  581246 4026532638 bash
  1       0 4026531836 system

次に、systemdスライスからpidを検索します。

[root@me ~]# systemd-cgls -l --no-pager | grep -E '|581250'
└─machine.slice 
  ├─libpod-b8f9a94888b51533c7179cd10781b5a72181e965e09075577e60c5b76ccde2bd.scope …
  │ └─581250 /bin/bash

その後、cgroup fsに行き、必要なものを確認してください。

[root@me ~]# ls  /sys/fs/cgroup/cpu/machine.slice/libpod-b8f9a94888b51533c7179cd10781b5a72181e965e09075577e60c5b76ccde2bd.scope/
cgroup.clone_children  cpuacct.stat   cpuacct.usage_all     cpuacct.usage_percpu_sys   cpuacct.usage_sys   cpu.cfs_burst_us   cpu.cfs_quota_us  cpu.stat           tasks
cgroup.procs           cpuacct.usage  cpuacct.usage_percpu  cpuacct.usage_percpu_user  cpuacct.usage_user  cpu.cfs_period_us  cpu.shares        notify_on_release
[root@me ~]# cat /sys/fs/cgroup/cpu/machine.slice/libpod-b8f9a94888b51533c7179cd10781b5a72181e965e09075577e60c5b76ccde2bd.scope/cpuacct.stat
user 126
system 18

関連情報