Learning
토픽 81 / 85·리눅스 커널 기술

Cgroup v2 (Control Groups v2)

Cgroup v2 (Control Groups v2)

Linux 커널의 리소스 제어 기능으로, 프로세스 그룹에 대한 CPU, 메모리, I/O 등 리소스 제한과 모니터링을 통합된 계층 구조로 제공

목적: 리소스 격리, 제한, 우선순위, 모니터링, 컨테이너 지원

특징: 단일 통합 계층, 리소스 컨트롤러, 위임, 압력 지표(PSI)

v1 vs v2 차이점

  • v1: 컨트롤러별 독립 계층, 복잡한 구조, 불일치
  • v2: 단일 통합 계층, 일관된 인터페이스, 안전한 위임

주요 컨트롤러

  • cpu: CPU 시간 제한(cpu.max), 가중치(cpu.weight)
  • memory: 메모리 제한(memory.max), 스왑 제한(memory.swap.max)
  • io: 블록 I/O 대역폭 제한(io.max), 가중치(io.weight)
  • pids: 프로세스 수 제한(pids.max)

계층 구조

  • 루트 cgroup: /sys/fs/cgroup
  • 자식 cgroup: 하위 디렉토리로 생성
  • 프로세스: cgroup.procs에 PID 기록

PSI (Pressure Stall Information): 리소스 압박 지표

  • some: 일부 태스크 대기
  • full: 모든 태스크 대기
  • cpu.pressure, memory.pressure, io.pressure

위임(Delegation): 비루트 사용자에게 하위 cgroup 관리 권한 부여

장점: 통합 관리, 안전한 위임, 컨테이너 최적화, PSI 모니터링

단점: v1과 호환성, 마이그레이션 필요, 학습 곡선

적용사례: Docker, Kubernetes, systemd, 리소스 관리

비교: cgroup v2(통합/단순) vs cgroup v1(분리/복잡) vs 네임스페이스(격리)

연관: 컨테이너, 네임스페이스, Docker, Kubernetes, 리소스 관리