내 Linux 호스트에서 cgroup을 사용할 수 있는지 어떻게 확인합니까?

내 Linux 호스트에서 cgroup을 사용할 수 있는지 어떻게 확인합니까?

Linux 시스템에서 컨테이너 서비스가 실행되고 있는지 확인하는 명령이 있습니까? 누군가 제안했지만 unshare이것이 최선의 접근 방식인지는 확실하지 않습니다.

답변1

업데이트: 귀하의 질문을 다시 읽은 후 답변이 약간 다르다는 것을 깨달았습니다. 서비스가 실행되고 있는지 알고 싶어서 원래 패키지가 설치되었는지 확인하는 방법에 대해 답변했습니다. 실제 질문에 대답하려면 초기화 시스템에 따라 다릅니다.

  1. systemd - 기본 명령은 systemctl모든 서비스와 해당 상태를 나열하므로 수동으로 찾아보거나 grep다음과 같은 명령을 통해 파이프 할 수 있습니다 systemctl | grep -e cgmanager -e cgproxy -e cgroupfs-mount. 또는 사용자 muru가 의견에서 제안한 대로 간단히 systemctl status 'cg*'.

  2. sysVinit - 기본 명령은 service --status-all, grep 명령은 입니다 service --status-all 2>&1 | grep -e cgmanager -e cgproxy -e cgroupfs-mount. 이 경우 실행 중인 서비스는 접두사 표기법으로 표시됩니다 [+]. 또한 grep이 올바르게 작동하려면 2>&1명령을 리디렉션해야 합니다 service.

원래 답변:

  1. 아마도 가장 쉬운 일은 시도하는 것입니다 man cgroups. 설명서 페이지가 나타나면 호스트에 이미 패키지가 설치된 것입니다. 그러나 일부 설치는 "인색"하여 man페이지를 설치하지 않습니다.

  2. 시도해 cgm보고 출력이 생성되는지 확인할 수 있습니다. 대부분의 설치에는 cgroups이 명령이 포함되지만 반드시 그런 것은 아닙니다.

  3. 호스트 배포판에 대한 패키지 목록을 찾을 수 있습니다. Debian 파생 제품에서는 가 되지만 dpkg -l |grep cgroup때때로 시스템이 root또는 에 대한 sudo액세스를 제한합니다 dpkg.

다른 방법도 많이 있을 것입니다.

답변2

다음 명령을 사용하여 커널 구성에서 어떤 cgroup 기능이 활성화되어 있는지 확인할 수 있습니다:

# zcat /proc/config.gz | grep CGROUP
CONFIG_CGROUPS=y
CONFIG_BLK_CGROUP=y
# CONFIG_DEBUG_BLK_CGROUP is not set
CONFIG_CGROUP_WRITEBACK=y
CONFIG_CGROUP_SCHED=y
CONFIG_CGROUP_PIDS=y
# CONFIG_CGROUP_RDMA is not set
# CONFIG_CGROUP_FREEZER is not set
CONFIG_CGROUP_HUGETLB=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_PERF=y
# CONFIG_CGROUP_DEBUG is not set
# CONFIG_SOCK_CGROUP_DATA is not set
# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set
# CONFIG_CGROUP_NET_PRIO is not set
# CONFIG_CGROUP_NET_CLASSID is not set

(참고: /proc/config.gz보여주기 위해

CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y

설정 필요)

관련 정보