cgroups는 리눅스 커널의 기능으로 CPU, 메모리, 네트워크 대역폭, I/O같은 자원들을 시스템에서 실행되고 있는 프로세스들에게 할당하고 관리합니다.
이는 Docker에서 컨테이너가 독립된 리소스를 사용하게 만들면서도 제한된 리소스만을 사용하게 만듭니다.
아래에서는 cgroups가 제공하는 것들에 대해 자세히 알아보겠습니다.
cgroups는 각각의 컨테이너가 특정 리소스만을 이용하게 제한합니다.
이는 시스템 리소스들을 여러 컨테이너 할당할 때 공평하게 나눠지도록 합니다.
컨테이너는 자신만의 리소스를 사용할 수 있기 때문에 잘못된 컨테이너로 인해 다른 컨테이너들이 영향을 받는 일이 없습니다.
cgroups는 CPU, 메모리, I/O와 같은 자원을 컨테이너가 사용할 때 제한된 양만 사용하도록 합니다.
이는 하나의 컨테이너가 과도한 리소스를 사용하여 다른 컨테이너나 호스트 시스템이 수행능력에 영향을 받지 않도록 합니다.
cgroups는 각각의 컨테이너에 서로 다른 자원량을 할당할 수 있습니다. 또한 컨테이너에 자원 사용의 우선순위도 설정할 수 있습니다.
이는 우선순위가 높은 컨테이너가 자원을 더 많이 사용하도록 할 수 있습니다.
cgroups은 각 컨테이너가 사용하는 리소스 사용량에 대한 모니터링 메커니즘 또한 제공할 수 있습니다. 이는 컨테이너의 성능과 잠재적 병목현상에 대한 통찰을 줄 수 있습니다.