cgroupfs는 무엇이며 Docker와 어떻게 사용됩니까?


16

Docker 설명서에는 기본 execdriver 옵션 ( https://docs.docker.com/engine/reference/commandline/daemon/ )에 대한 설명이 있습니다 . 문서는 말합니다

native.cgroupdriver 옵션은 컨테이너의 cgroup 관리를 지정합니다. cgroupfs 또는 systemd를 지정할 수 있습니다. systemd를 지정했는데 사용할 수없는 경우 시스템은 cgroupfs를 사용합니다. 기본적으로 옵션을 지정하지 않으면 execdriver는 먼저 systemd를 시도하고 cgroupfs로 폴백합니다. 이 예제는 execdriver를 cgroupfs로 설정합니다.

내 질문은이 경우에 무엇 cgroupfs이고 어떻게 비교 systemd됩니까? 트윗cgroupfs 으로 연결되는 정보에 대한 인터넷 검색 :

--exec-opt native.cgroupdriver = cgroupfs FTW. 심각하게 @docker, systemd가 관리하는 cgroups에 대한 지원을 중단하면 재앙입니다.

그러나 나는 누군가가 기본값과 다른 설정을 사용한다고 말하는 것보다 실제로 이것이 무엇을하는지에 대한 자세한 내용을 제공 할 수 있기를 바랍니다.


이 모든 것이 컨테이너에 시스템 (CPU) 자원을 할당하는 것과 관련이 있다는 것을 알고 있습니까? systemd에는 cgroup 통합 기능이 내장되어 있습니다. Cgroupfs는 커널 cgroup 인터페이스의 파일 시스템 뷰입니다. 이것이 당신이 찾고있는 것이라면, 나는 대답에 넣을 것입니다. 그러나 이것을 이미 알고 있다면 코드를 파헤쳐 야합니다.
Otheus

@Otheus 나는 현상금을 질문에 넣지 않았기 때문에 그 사람이 무엇에 관심이 있는지 잘 모르겠습니다. 질문을하도록 동기를 부여한 주된 이유는 누군가가 옵션 사용을 추천 한 이유를 이해하려는 욕구였습니다 --exec-opt native.cgroupdriver=cgroupfs. 그러나 Docker 설명서의 내용보다 초보자가 이해하기 쉬운 설정을 설명하는 답변을 작성했다면 나중에 사람들이 Google에서 질문을 찾는 데 도움이 될 것입니다.
Gabriel Southern

답변:


1

내가 소스에서 주석에서 볼 수 있듯이 : vendor/src/github.com/opencontainers/runc/libcontainer/factory_linux.go

// Cgroupfs is an options func to configure a LinuxFactory to return
// containers that use the native cgroups filesystem implementation to
// create and manage cgroups.

cgroupfslibcontainer컨테이너 cgroups를 파일에 직접 쓰는 컨테이너를 구성하는 자체 도커 ( ) 구현 인 것 같습니다 cgroups-file-system(예 :에 마운트 됨 /sys/fs/cgroup/).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.