現在、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