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

관련 정보