cgroup(cpu 제한)

2025. 3. 5. 16:37리눅스/실무 초밀착 리눅스

cgroup은 리눅스 커널에서 프로세스를 그룹화하고 리소스를 할당 및 제한하는 기능을 갖고 있다.

실습에서 사용하는 cgroup의 버전은 v2이며 v1에 비해 설정이 더 단순하고 효율적이다.

v2 확인

 

cpu에 부하를 주어도 cgroup을 통해 cpu 부하를 방지하는 방법에 대해 실습해보려 한다.

 

 

cpu에 부하를 줄 stress 패키지 설치

sudo apt update
sudo apt install -y stress

 

cgroup 그룹 생성

sudo -i
cd /sys/fs/cgroup/
mkdir utils
cd utils

 

아래와 같이 현재 사용하는 pid 확인 후 cgroup 그룹에 프로세스를 추가하자.

현재 bash 터미널이 사용하는 pid 확인

echo $$ >> cgroup.procs

 

이제 최대 cpu 사용량을 1core로 설정하자.

cpu.max = <quota> <period> 로 각 단위는 μs 이다.

뒤의 period 값을 넣지 않으면 기본값은 100000μs (=100ms=0.1s) 이다.

echo "100000 100000" > /sys/fs/cgroup/utils/cpu.max

 

stress 명령어를 통해 2core 부하를 주자.

stress -c 2

 

아래 사진과 같이 1core로 cpu 사용이 제한됨을 확인 가능하다.

htop 을 통해 확인

 

마지막으로 cgroup에 추가했던 프로세스를 종료 후 생성한 cgroup 삭제 하며 실습을 마무리하자.

만약 제거가 완전히 되지 않는다면 재부팅 시 제거됨을 확인 가능하다.

kill -9 <pid>
rm -rf utils/

'리눅스 > 실무 초밀착 리눅스' 카테고리의 다른 글

namespace(mount)  (0) 2025.03.20
cgroup(pid 제한)  (0) 2025.03.05