웹사이트 검색

CPULimit 도구를 사용하여 Linux에서 프로세스의 CPU 사용량 제한


이전 게시물에서는 Linux에서 모든 프로세스의 CPU 사용률을 제한하고 제어하는 CPUTool에 대해 설명했습니다. 이를 통해 시스템 관리자는 CPU/시스템 부하가 정의된 임계값을 초과하는 경우 프로세스(또는 프로세스 그룹)의 실행을 중단할 수 있습니다. 여기서는 cpulimit라는 유사한 도구를 사용하는 방법을 알아봅니다.

CpulimitCPUTool과 같은 방식으로 프로세스의 CPU 사용량을 제한하는 데 사용되지만 해당 항목에 비해 더 많은 사용 옵션을 제공합니다. 한 가지 중요한 차이점은 cpulimit는 cputool과 달리 시스템 로드를 관리하지 않는다는 것입니다.

권장 읽기: Linux에서 CPU 정보를 얻는 데 유용한 9가지 명령

Linux에서 프로세스의 CPU 사용량을 제한하기 위해 CPULimit 설치

CPULimit은 패키지 관리 도구를 사용하여 Debian/Ubuntu 및 그 파생 제품의 기본 소프트웨어 저장소에서 설치할 수 있습니다.

sudo apt install cpulimit

RHEL/CentOSFedora에서는 먼저 EPEL 저장소를 활성화한 다음 표시된 대로 cpulimit를 설치해야 합니다.

# yum install epel-release
# 냠 설치 CPU 제한

CUPLimit으로 프로세스 CPU 사용량 제한

이 하위 섹션에서는 cpulimit의 작동 방식을 설명합니다. 먼저 백그라운드에서 CPU 비율을 높이는 명령(cputool을 다루면서 살펴본 것과 동일한 dd 명령)을 실행해 보겠습니다(프로세스 PID는 명령을 실행한 후 출력됩니다). .

dd if=/dev/zero of=/dev/null &

[1] 17918

다음으로, 실행 중인 Linux 시스템의 실제 자주 업데이트되는 상태를 출력하는 top 또는 glans 도구를 사용하여 위 명령의 CPU 사용량을 확인할 수 있습니다.

top

위 출력을 보면 dd 프로세스가 CPU 시간 100.0%의 가장 높은 비율을 활용하고 있음을 알 수 있습니다.

그러나 다음과 같이 cputlimit를 사용하여 이를 제한할 수 있습니다. --pid 또는 -p 옵션은 PID를 지정하는 데 사용되며 --limit 또는 -l는 프로세스의 사용 비율을 설정하는 데 사용됩니다.

아래 명령은 dd 명령(PID 17918)을 하나의 CPU 코어 사용을 50%로 제한합니다.

sudo cpulimit --pid 17918 --limit 50  

Process 17918 detected

cpulimit를 실행하면 dd 명령의 현재 CPU 사용량을 상단 또는 한눈에 볼 수 있습니다. 출력에서 값의 범위는 (51.5%-55.0% 또는 약간 초과)입니다.

다음과 같이 두 번째로 CPU 사용량을 조절할 수 있으며, 이번에는 다음과 같이 백분율을 더 낮출 수 있습니다.

sudo cpulimit --pid 17918 --limit 20 

Process 17918 detected

이전과 마찬가지로 top 또는 Glances를 실행하여 프로세스의 새 CPU 사용량을 확인할 수 있습니다. 범위는 20%-25.0% 또는 이보다 약간 높습니다.

top

참고: 셸은 비대화형이 됩니다. cpulimit가 실행 중일 때는 사용자 입력이 필요하지 않습니다. 이를 종료하려면(CPU 사용량 제한 작업을 중지해야 함) [Ctrl + C]를 누르세요.

cpulimit를 백그라운드 프로세스로 실행하려면 --Background 또는 -b 스위치를 사용하여 터미널을 비우세요.

sudo cpulimit --pid 17918 --limit 20 --background

시스템에 있는 CPU 코어 수를 지정하려면 --cpu 또는 -c 플래그를 사용합니다(일반적으로 자동으로 감지됨).

sudo cpulimit --pid 17918 --limit 20 --cpu 4

프로세스의 CPU 사용량을 제한하는 대신 --kill 또는 -k 옵션을 사용하여 프로세스를 종료할 수 있습니다. 기본값은 프로세스에 전송되는 신호가 SIGCONT이지만, 다른 신호를 전송하려면 --signal 또는 -s 플래그를 사용하세요.

sudo cpulimit --pid 17918 --limit 20 --kill 

적합한 대상 프로세스가 없거나 종료되는 경우 종료하려면 다음과 같이 -z 또는 --lazy를 포함하세요.

sudo cpulimit --pid 17918 --limit 20 --kill --lazy

추가 정보 및 사용 옵션을 보려면 cpulimit 매뉴얼 페이지를 참조하십시오.

man cpulimit

CPU 정보 및 CPU/시스템 성능 모니터링을 찾는 데 유용한 다음 가이드를 확인하세요.

  1. Linux에서 메모리 및 CPU 사용량이 가장 높은 상위 실행 프로세스 찾기
  2. Cpustat – Linux에서 프로세스를 실행하여 CPU 사용률을 모니터링합니다.
  3. CoreFreq – Linux 시스템을 위한 강력한 CPU 모니터링 도구
  4. Linux에서 메모리 및 CPU 사용량이 가장 높은 상위 실행 프로세스 찾기
  5. Linux 성능을 모니터링하는 20가지 명령줄 도구
  6. 13 Linux 성능 모니터링 도구 - 2부

이에 비해 CPUTool 및 CPULimit을 테스트한 후 전자가 더 효과적이고 안정적인 '프로세스 CPU 사용량 제한' 기능을 제공한다는 사실을 발견했습니다.

이는 특정 프로세스에 대해 두 도구를 모두 실행한 후 관찰된 CPU 사용량의 백분율 범위에 따른 것입니다. 두 도구를 모두 사용해 보고 아래 피드백 양식을 사용하여 이 기사에 대한 의견을 추가하세요.