문맥

문맥

문맥

주기적으로 사용량을 확인해야 하는 시스템이 있습니다.

  • 상대(퍼센트)CPU
  • 의 경우 절대값(GB)입니다 memory.

현재 구현되는 방식

우리가 사용하는 언어는 입니다 python.

시스템 전체psutil

psutil.cpu_percent()시스템 전체 통계의 경우 및 를 사용할 수 있으므로 간단합니다 psutil.virtual_memory().

cgroup(v1)

cgroup문제는 때때로 스크립트가 컨테이너 내부에서 실행되는 경우 시스템 전체 통계 대신 특정 통계의 사용을 모니터링하고 싶다는 것입니다 .

cgroups우리 시스템에는 다음을 기반으로 하는 구현이 이미 있습니다 .

  • CPU의 경우:
    • cpu.cfs_period_us
    • cpu.cfs_quota_us
    • cpuacct.usage
  • 기억을 위해:
    • memory.usage_in_bytes
    • memory.limit_in_bytes

내가 필요한 것

여기에는 두 가지 질문에 대한 답변이 필요합니다.

  • 현재 구현은 파일에서 직접 값을 읽는 것을 기반으로 합니까 cgroup?
  • 그렇지 않다면 그러한 종류의 정보를 쉽게 얻을 수 있도록 지원하는 도구가 있습니까?
  • 그렇다면 이 솔루션을 어떻게 적용할 수 있습니까 cgroup2?

현재 솔루션이 작동하지 않는 이유cgroup2

현재 제가 겪고 있는 주요 문제는 cgroup2현재 구현이 중첩된 파일 구조를 기반으로 하기 때문에 지원이 부족하다는 것입니다.

cgroup~에Ubuntu 20.04

$ cat /proc/mounts | grep cgroup
tmpfs /sys/fs/cgroup tmpfs ro,nosuid,nodev,noexec,mode=755 0 0
cgroup2 /sys/fs/cgroup/unified cgroup2 rw,nosuid,nodev,noexec,relatime,nsdelegate 0 0
cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,xattr,name=systemd 0 0
cgroup /sys/fs/cgroup/rdma cgroup rw,nosuid,nodev,noexec,relatime,rdma 0 0
cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0
cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0
cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0
cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
cgroup /sys/fs/cgroup/pids cgroup rw,nosuid,nodev,noexec,relatime,pids 0 0
cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0
cgroup /sys/fs/cgroup/net_cls,net_prio cgroup rw,nosuid,nodev,noexec,relatime,net_cls,net_prio 0 0
cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpu,cpuacct 0 0
cgroup /sys/fs/cgroup/hugetlb cgroup rw,nosuid,nodev,noexec,relatime,hugetlb 0 0

cgroup2~에Ubuntu 22.04

$ cat /proc/mounts | grep cgroup
cgroup2 /sys/fs/cgroup cgroup2 rw,nosuid,nodev,noexec,relatime 0 0

관련 정보