[리눅스] 리눅스 Cgroup

리눅스 Cgroup은 리누스 커널에서 지원하는 새로운 기능으로, 리소스 관리와 모니터링을 위한 컨트롤 그룹을 설정하는 데 사용됩니다.

Cgroup은 CPU, 메모리, 디스크 I/O, 네트워크 대역폭 등 리소스에 대한 제한과 우선순위 설정을 가능하게 해주는 커널 기능으로, 시스템 관리자가 원하는 대로 리소스를 할당하고 제어할 수 있습니다.

Cgroup의 주요 기능

  1. 리소스 제한 설정: 특정 프로세스 또는 그룹 프로세스가 사용할 수 있는 리소스 양을 제한할 수 있습니다.
  2. 우선순위 설정: 리소스에 대한 우선순위를 지정하여 특정 프로세스에 대한 우선순위를 결정할 수 있습니다.
  3. 모니터링: 리소스 사용량을 실시간으로 모니터링하여 시스템 성능 및 안정성을 유지할 수 있습니다.

Cgroup 사용 예시

# Cgroup 서브시스템 마운트
# /mnt/cgroup 디렉토리에 CPU 서브시스템을 마운트
mount -t cgroup -o cpu none /mnt/cgroup

# 새로운 Cgroup 생성
mkdir /mnt/cgroup/group1

# 프로세스를 Cgroup에 추가
echo 12345 > /mnt/cgroup/group1/tasks

# CPU 사용량 제한 설정
echo 50000 > /mnt/cgroup/group1/cpu.shares

Cgroup은 동적으로 리소스 할당을 조정할 수 있는 강력한 도구로, 가상화, 컨테이너 및 클라우드 환경에서 자원 제한 및 모니터링에 널리 사용됩니다.

리눅스 커널 버전 2.6.24부터 포함되어 있으며, Cgroups 또는 Control Groups로도 알려져 있습니다.

더 자세한 내용은 리눅스 커널 소스 코드 레포지토리를 참고하세요. https://www.kernel.org/