단일 애플리케이션의 CPU 사용량을 제한 할 수 있습니까?


답변:


16

cpulimit의 대안으로 :

nice 명령으로 clamscan을 시작할 수 있습니다.

nice -n 19 clamscan.

자세한 내용 man nice을 참조하십시오.

그것은 않습니다 NOT CPU를 제한하지만,하지 우선 순위 낮은 프로세스를.

또한 renice실행중인 프로세스의 우선 순위를 변경해야합니다.


2
그것은 여전히 ​​많은 CPU를 먹고 작동하는 것 같습니다 ...
Pitto

4
cputime을 필요로하는 다른 프로세스가없는 한 clamscan은 많은 것을 얻습니다. 그러나 우선 순위가 더 높은 다른 프로세스에 cputime이 필요한 즉시 clamscan은 기회가 없습니다. cpulimit는 절대 cputime을 제한하고 멋진 cputime을 제한합니다.
Clausi

2
+1. niceing은 갈 수있는 전통적인 방법이며 좋은 이유가 있습니다.
loevborg

특정 응용 프로그램을 실행할 기본 좋은 값을 정의하는 도구가 있습니까? 모든 사전 설정을 나란히 비교할 수있는 도구 인 것이 좋습니다.
Jonny Asmar

19

cpulimit 설치

sudo apt-get install cpulimit

프로세스의 CPU 사용량을 foo20 % 로 제한하는 다양한 방법을 제공합니다.

  • 프로세스 이름으로 : sudo cpulimit -e foo -l 20.

  • 절대 경로 이름으로 : sudo cpulimit -P /usr/bin/foo -l 20

  • PID로 :

    1. 프로세스의 PID를 찾으십시오 pidof foo.. (즉, 1881을 출력 함)
    2. sudo cpulimit -p 1881 -l 20

대상 프로세스를 찾을 수 없습니다 ... clamscan을 실행하는 스크립트가 있기 때문일 수 있습니다. 내가 할 : sudo cpulimit -e /etc/cron.hourly/virusscan -l 15
Pitto

@Pitto : 잘못된 명령을 입력했습니다 /etc/cron.hourly/virusscan. 프로세스가 아닙니다. 제한해야하는 경우을 clamscan실행하십시오 sudo cpulimit -e clamscan -l 15.
Sid

오! 권리! 그래서 rc.local에서 시작할 때 cpulimit를 시작해야합니다.
Pitto

2
sudo프로세스가 시스템 프로세스가 아닙니다. 참고로
Anwar

프로그래밍 방식으로 사용하면 정말 깔끔한 솔루션입니다! 패턴 기반 검색을 지원합니까?
Jonny Asmar

4

이것은 Clausi의 답변에 대한 의견이 될 것입니다 (제 의견으로는 시스템 관리 관점에서 가장 "정확하다고 생각합니다").하지만 의견 상자에 맞지 않을 정도로 너무 커졌습니다.

  • Clamscan은 정해진 속도로 작업을 수행하므로 특정 속도로 제한하면 시간이 더 오래 걸립니다. CPU를 더 오랫동안 경쟁에 빠뜨릴 것입니다.

  • CPU를 최대한 빨리 사용할 수 있도록 최대한 빨리 실행하십시오. 아주 "좋게"한다는 것은 다른 프로세스가 자신의 작업을 먼저 수행하게한다는 것을 의미합니다. 즉, 다른 바쁜 프로세스가 많으면 자체 작업을 수행하는 데 시간이 오래 걸리지 만 아무것도 없으면 워크로드를 통해 청크가 발생합니다.


3

systemd와 함께 clamd를 실행중인 경우 CPUQuota옵션을 사용할 수 있습니다 .

섹션 /lib/systemd/system/clamav-daemon.service에이 줄을 포함하도록 편집 [Service]하십시오.

CPUQuota=20%

그런 다음 서비스를 다시 시작하십시오.

sudo systemctl daemon-reload
sudo systemctl reload-or-restart clamav-daemon

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.