본문 바로가기
리눅스/Part1. Ch02. 컨테이너를 구성하는 리눅스 기술

06. cgroup의 이해

by Engineer-Lee 2022. 6. 23.
반응형

컨테이너 구성하는 3가지 주요 리눅스 기술

  • Control groups
  • Namespaces
  • Union mount filesystem

 

cgroups (Control Groups)

  • 프로세스들이 사용하는 시스템 자원의 사용 정보를 수집 및 제한 시키는 리눅스 커널 기능
    * 모든 프로세스에 대해 리소스 사용 정보를 수집
  • 제한 가능한 자원: CPU, Memory, Network, Device, Block I/O
  • 활용 사례: runc, YARN (Hadoop), Android 등

 

- 사용 가능한 서브시스템
blkio, cpu, cpuacct, cpuset, devices, freezer, memory, net_cls, ns

 

• cpu — 스케줄러를 이용해 해당 cgroup 에 속한 프로세스 CPU 사용 시간을 제어
(예, 해당 그룹의 CPU사용량 10%로 제한)
• memory —해당 cgroup에 속한 프로세스의 메모리 사용량에 대한 제어
(예, 해당 그룹의 메모리 사용량을 128MB로 제한 → 128MB 초과 사용시 oom_control 이 해당 초과된 작업을 종료시킴 )
• freezer —cgroup의 작업을 일시 중지하거나 다시 시작 → docker pause
• blkio — cgroup에 블록 장치에 대한 입력/출력 제한을 설정 (저장공간 제한 개념 아님)
• net_cls — 이 서브시스템은 Linux 트래픽 컨트롤러 (tc)가 특정 cgroup 작업에서 발생하는 패킷을
식별하게 하는 클래식 식별자 (classid)를 사용하여 네트워크 패킷에 태그를 지정
• cpuset —개별 CPU 및 메모리 노드를 cgroup에 할당
• cpuacct —cgroup이 사용한 CPU 자원에 대한 보고서를 생성
• devices —cgroup의 작업 단위로 장치에 대한 액세스를 허용하거나 거부
• ns — namespace 서브시스템

 

 

Case #1 Web 서비스

 

Case #2 Kubernetes Pod

반응형