cgroup(cpu 제한)
2025. 3. 5. 16:37ㆍ리눅스/실무 초밀착 리눅스
cgroup은 리눅스 커널에서 프로세스를 그룹화하고 리소스를 할당 및 제한하는 기능을 갖고 있다.
실습에서 사용하는 cgroup의 버전은 v2이며 v1에 비해 설정이 더 단순하고 효율적이다.
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 그룹에 프로세스를 추가하자.
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 사용이 제한됨을 확인 가능하다.
마지막으로 cgroup에 추가했던 프로세스를 종료 후 생성한 cgroup 삭제 하며 실습을 마무리하자.
만약 제거가 완전히 되지 않는다면 재부팅 시 제거됨을 확인 가능하다.
kill -9 <pid>
rm -rf utils/
'리눅스 > 실무 초밀착 리눅스' 카테고리의 다른 글
namespace(mount) (0) | 2025.03.20 |
---|---|
cgroup(pid 제한) (0) | 2025.03.05 |