본문 바로가기

리눅스

리눅스 CPU 사용률 제한

리눅스에서 특정 프로세스나 전체 CPU 사용률을 제한하려면 여러 가지 방법이 있습니다. 여기서는 주요 방법들을 설명합니다.


1. cpulimit 명령어 사용

cpulimit는 특정 프로세스의 CPU 사용률을 제한하는 데 사용됩니다.

설치

sudo apt-get install cpulimit   # Ubuntu/Debian
sudo yum install epel-release && sudo yum install cpulimit  # CentOS/RHEL

사용법

sudo cpulimit -p <PID> -l <LIMIT>
  • <PID>: 제한할 프로세스 ID
  • <LIMIT>: CPU 사용률의 최대 값 (예: 50은 CPU 사용률 50%)

예제:

sudo cpulimit -p 12345 -l 50

위 명령은 PID 12345인 프로세스의 CPU 사용률을 50%로 제한합니다.

실행 시 바로 제한

새로운 프로세스를 실행하면서 제한을 걸고 싶다면:

sudo cpulimit -e <프로그램> -l <LIMIT>

2. nice와 renice를 사용한 우선순위 조정

CPU 사용률을 직접 제한하지는 않지만, 프로세스의 우선순위를 낮춰 다른 프로세스가 더 많은 리소스를 사용하도록 설정할 수 있습니다.

새 프로세스 실행 시 nice 사용

nice -n <PRIORITY> <COMMAND>
  • <PRIORITY>: -20(최고 우선순위)에서 19(최저 우선순위)
  • 기본 우선순위는 0입니다.

예제:

nice -n 10 ./my_program

실행 중인 프로세스의 우선순위 변경 (renice)

renice <PRIORITY> -p <PID>

예제:

renice 10 -p 12345

3. cgroups 사용

cgroups는 시스템 자원을 그룹 단위로 관리하는 리눅스 커널 기능입니다.

cgroups 설정

  1. cgroup-tools 설치
  2. sudo apt-get install cgroup-tools # Ubuntu/Debian sudo yum install libcgroup-tools # CentOS/RHEL
  3. cgroup 생성 및 CPU 제한
    • cpu.shares: CPU 점유 비율 (기본값: 1024, 낮을수록 우선순위 낮음)
  4. sudo cgcreate -g cpu:/mygroup sudo cgset -r cpu.shares=512 mygroup
  5. 프로세스 그룹에 추가
  6. sudo cgclassify -g cpu:/mygroup <PID>

4. systemd를 사용한 제한

systemd로 관리되는 서비스라면 CPU 사용률을 설정할 수 있습니다.

  1. 서비스 파일 수정 /etc/systemd/system/<서비스 이름>.service를 엽니다.
  2. [Service] CPUQuota=50%
  3. 설정 적용
  4. sudo systemctl daemon-reload sudo systemctl restart <서비스 이름>

5. taskset으로 CPU 코어 지정

특정 코어에서만 프로세스를 실행하게 설정하면 CPU 사용률을 제한할 수 있습니다.

사용법

taskset -c <CORE_LIST> <COMMAND>
  • <CORE_LIST>: 사용 가능한 CPU 코어 번호 (예: 0,1 또는 0-3)

예제:

taskset -c 0-1 ./my_program

위 명령은 프로그램을 0번과 1번 코어에서만 실행하도록 제한합니다.


결론

  • 간단히 제한하려면 cpulimit 사용.
  • 우선순위를 조정하려면 nice 또는 renice 사용.
  • 고급 설정이 필요하면 cgroups나 systemd를 활용.
  • 특정 코어에서만 실행하려면 taskset을 사용.

 

'리눅스' 카테고리의 다른 글

리눅스 특정 용량 되면 삭제  (0) 2025.01.14
리눅스 대용량 파일시스템  (0) 2025.01.13
리눅스 LVM  (0) 2025.01.11
리눅스 디스크 정보 확인  (1) 2025.01.08
리눅스 MEM 사용율 높은 프로세스 확인  (1) 2025.01.07