현재 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