CPUTool – 리눅스에서 모든 프로세스의 CPU 이용률 제한 및 제어

리눅스 성능 모니터링 중 하나의 중요한 영역은 CPU 사용량과 시스템 부하여야 합니다. 시스템에서 어떻게 진행되고 있는지 주시하기 위해 여러 리눅스 성능 모니터링 도구가 있습니다.

A number of these tools simply output the system state/statistics while a few others provide you means of managing system performance. One such tool called CPUTool.

CPUTool은 어떤 프로세스의 CPU 이용률을 특정 제한으로 제어하고 시스템 부하가 정의된 임계값을 초과하면 프로세스 실행을 중단할 수 있는 간단하면서 강력한 명령줄 도구입니다.

CPUTool은 어떻게 작동합니까?

CPU 사용량을 제한하기 위해 cputool은 프로세스에 SIGSTOPSIGCONT 신호를 보내며 이는 시스템 부하에 따라 결정됩니다. 이는 /proc 가상 파일 시스템을 통해 PID 및 그들의 CPU 사용량 측정값을 읽는 데 의존합니다.

이는 단일 프로세스나 프로세스 그룹에 의해 영향을 받는 CPU 사용량이나 시스템 부하를 특정 제한으로 제한하거나 시스템 부하가 임계값을 초과하면 프로세스를 중단하는 데 사용될 수 있습니다.

권장 독서: 리눅스 부하 평균 이해 및 리눅스 성능 모니터링

CPU 사용량 및 부하 평균 제한을 위해 CPUTool 설치

A CPUTool is only available to install on Debian/Ubuntu and its derivatives from the default system repositories using package management tool.

$ sudo apt install cputool

CPUTool을 사용하여 프로세스 CPU 사용량 제한하기

이제 cputool이 실제로 어떻게 작동하는지 살펴봅시다. 모두 시연하기 위해 dd 명령어를 실행할 것이며, 이는 백그라운드에서 높은 CPU 사용량을 나타내고 해당 PID를 표시해야 합니다.

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

CPU 사용량을 모니터링하기 위해 top 또는 glances 도구를 사용할 수 있으며, 이를 통해 실행 중인 Linux 시스템 프로세스의 실시간으로 정기적으로 업데이트된 상태를 볼 수 있습니다:

# top
Monitor dd Command CPU Usage

위의 출력에서 dd 명령어가 CPU 시간의 최고 백분율을 가지고 있음을 볼 수 있습니다 (99.7%) 이제 아래에 표시된대로 cputool을 사용하여 이를 제한할 수 있습니다.

--cpu-limit 또는 -c 플래그는 프로세스 또는 프로세스 그룹의 사용량 백분율을 설정하는 데 사용되며, -p는 PID를 지정하는 데 사용됩니다. 다음 명령은 dd 명령어 (PID 8275)를 한 CPU 코어의 50% 사용으로 제한할 것입니다:

# cputool --cpu-limit 50 -p 8275 

cputool을 실행한 후, 프로세스 (PID 8275)의 새 CPU 사용량을 다시 확인할 수 있습니다. 이제 dd 프로세스의 CPU 사용량은 (49.0%-52.0%) 범위여야 합니다.

# top
Limit Process CPU to 50% Usage

dd의 CPU 사용량을 20%로 더 제한하려면 cputool을 두 번 실행할 수 있습니다:

# cputool --cpu-limit 20 -p 8275 

그런 다음 즉시 top 또는 glances와 같은 도구를 사용하여 확인하십시오 (이제 dd의 CPU 사용량은 19.0%-22.0% 또는 이보다 약간 높아야 합니다):

# top
Limit Process CPU Usage to 20%

쉘은 cputool이 실행되는 동안 사용자 입력을 기대하지 않으므로 응답하지 않게 됩니다. 이를 종료하려면 (이는 CPU 사용량 제한 작업을 종료합니다) Ctrl + C를 누르세요.

중요한 점은 프로세스 그룹 (각각 고유한 PID를 가진 여러 실행 인스턴스가 있는 하나의 프로그램)을 지정하는 경우 HTTP 웹 서버와 같은 경우:

# pidof apache2
9592 3643 3642 3641 3640 3638 3637 1780

다음과 같이 -P 플래그를 사용하십시오:

# cputool --cpu-limit 20 -P 1780

CUPTool로 시스템 부하 제한하기

-l 옵션은 프로세스나 프로세스 그룹이 계속 실행되도록 시스템이 허용할 수 있는 최대 부하를 지정하는 데 사용됩니다. 우리는 분수 값(예: 2.5)을 사용할 수 있습니다.

아래 예제는 시스템 부하가 3.5를 초과하지 않을 때에만 로컬 백업을 위해 rsync를 실행하도록 하는 것을 의미합니다:

# cputool --load-limit 3.5 --rsync -av /home/tecmint /backup/`date +%Y-%m-%d`/

자세한 정보 및 사용법은 CPUTool 매뉴얼 페이지를 참조하십시오:

# man cputool

CPU 정보 및 CPU 성능 모니터링을 찾는 데 유용한 가이드를 확인해보세요.

  1. 리눅스에서 CPU 정보를 얻는 데 유용한 9가지 명령어
  2. Cpustat – 리눅스에서 실행 중인 프로세스에 의한 CPU 사용량을 모니터링합니다
  3. CoreFreq – 리눅스 시스템용 강력한 CPU 모니터링 도구
  4. 리눅스에서 최상위 메모리 및 CPU 사용량에 따른 최상위 실행 중인 프로세스 찾기

결론적으로, CPUTool은 리눅스 성능 관리에 정말 유용합니다. 이 문서에 대한 의견을 아래 피드백 양식을 통해 공유해주세요.

Source:
https://www.tecmint.com/cputool-limit-linux-process-cpu-usage-load/