[리눅스] 리눅스 Cgroup
리눅스 Cgroup은 리누스 커널에서 지원하는 새로운 기능으로, 리소스 관리와 모니터링을 위한 컨트롤 그룹을 설정하는 데 사용됩니다.
Cgroup은 CPU, 메모리, 디스크 I/O, 네트워크 대역폭 등 리소스에 대한 제한과 우선순위 설정을 가능하게 해주는 커널 기능으로, 시스템 관리자가 원하는 대로 리소스를 할당하고 제어할 수 있습니다.
Cgroup의 주요 기능
- 리소스 제한 설정: 특정 프로세스 또는 그룹 프로세스가 사용할 수 있는 리소스 양을 제한할 수 있습니다.
- 우선순위 설정: 리소스에 대한 우선순위를 지정하여 특정 프로세스에 대한 우선순위를 결정할 수 있습니다.
- 모니터링: 리소스 사용량을 실시간으로 모니터링하여 시스템 성능 및 안정성을 유지할 수 있습니다.
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/