Topic

cgroups v2 (Control Groups Version 2)

JackerLab 2026. 1. 2. 09:21
728x90
반응형

개요

cgroups(Control Groups)는 Linux 커널 기능 중 하나로, 프로세스 그룹 단위로 CPU, 메모리, 블록 I/O, 네트워크 대역폭 등 시스템 자원 사용을 제한, 기록, 격리, 계층화할 수 있게 합니다. 그 중 cgroups v2는 기존 v1의 구조적 한계를 해결하고 더 일관성 있는 인터페이스, 통합된 계층 구조, 향상된 보안성을 제공하는 최신 표준입니다. 컨테이너 환경과 클라우드 네이티브 인프라에서 핵심적인 역할을 수행합니다.


1. 개념 및 정의

항목 내용 비고
정의 리눅스 커널에서 자원 제어를 위한 통합된 계층 구조 기반의 컨트롤 그룹 시스템 Linux Kernel 4.5 이상 지원
목적 프로세스 그룹 단위 자원 제한, 회계, 격리 기능 제공 시스템 안정성과 공정성 확보
필요성 cgroups v1의 중복 및 비일관성 문제 해결 컨테이너 보안 및 자원 격리 강화

2. 특징

항목 설명 비고
단일 계층 구조 모든 컨트롤러가 하나의 트리 내에서 작동 복잡한 병합 문제 해소
통합된 인터페이스 /sys/fs/cgroup 하위에 통일된 파일 시스템 구조 설정과 계측 간 일관성 향상
Thread granularity 스레드 수준 자원 제어 가능 cgroup.threaded 플래그 활용
효율적인 자원 분배 memory.high, memory.max, cpu.weight 등 정밀한 자원 제어 페어 쉐어 방식 포함

시스템 수준에서 컨테이너 오케스트레이션 도구와 직접 연결됨.


3. 구성 요소

구성 요소 설명 비고
controllers cpu, memory, io, pids 등 개별 자원 관리 모듈 /sys/fs/cgroup/cgroup.controllers로 확인
cgroup.procs 해당 그룹에 속한 프로세스 PID 목록 프로세스 이동 시 업데이트 가능
cgroup.subtree_control 하위 그룹에 활성화할 컨트롤러 지정 트리 기반 계층 제어
unified hierarchy 단일 트리로 모든 자원 관리 통합 v1의 병렬 계층 구조와 차별화

기존 v1 대비 훨씬 직관적이며 관리가 용이함.


4. 기술 요소

기술 요소 설명 활용 방식
memory.high / memory.max 메모리 사용 상한선 설정 소프트/하드 리밋 분리로 탄력적 제어
cpu.weight CPU 점유 비율을 비례적으로 설정 100 ~ 10000 범위 조절 가능
io.max 디바이스별 IOPS 또는 BPS 제한 디스크 I/O 제어
pids.max 생성 가능한 PID 수 제한 DoS 방지 및 격리 목적

각 설정은 시스템 서비스, 컨테이너 런타임 등과 통합 활용 가능.


5. 장점 및 이점

항목 설명 기대 효과
컨테이너 최적화 Docker, Podman, systemd 등과 연동 자원 제한 정책 일관성 확보
보안성 강화 PID, 메모리, CPU 제어를 통한 공격면 감소 시스템 안정성 향상
계층 기반 관리 하위 그룹 자원 상속 및 제한 가능 멀티 테넌시 환경에 적합
개발 편의성 증가 단일 트리 기반으로 예측 가능한 제어 가능 사용자 학습 비용 감소

리눅스 서버 및 클라우드 인프라 운영에서 핵심 기능으로 자리잡음.


6. 주요 활용 사례 및 고려사항

사례 설명 고려사항
Kubernetes 노드 자원 제어 kubelet이 cgroups v2를 통해 Pod 단위 자원 제한 --cgroup-driver=systemd와 함께 사용
systemd 서비스 자원 제어 각 서비스 단위로 메모리/CPU 제한 가능 systemctl set-property로 동적 변경 가능
컨테이너 런타임 연동 containerd, CRI-O 등과 호환 런타임이 cgroups v2 지원 여부 확인 필요
데스크탑 앱 리소스 제한 게임/브라우저 등의 백그라운드 자원 통제 배터리 최적화와 발열 제어 목적

모든 컨트롤러가 완전히 작동하려면 커널 및 런타임 호환성 확인 필수.


7. 결론

cgroups v2는 Linux 기반 시스템에서 현대적인 자원 관리와 보안을 실현하는 핵심 기능입니다. 특히 단일 계층 구조와 통합 인터페이스는 관리 효율성과 운영 안정성을 크게 향상시켰으며, 컨테이너 기술과 클라우드 인프라 운영에 필수적으로 통합되고 있습니다. 앞으로는 모든 리눅스 기반 오케스트레이션 환경의 표준 구성요소로 자리매김할 것입니다.

728x90
반응형