토픽 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, 리소스 관리