lany avatar

linux系统使用cpulimit限制程式cpu佔用

🕛 by lany





cpulimit 是一個限制進程的CPU使用率的工具(以百分比表示,而不是CPU時間)。當您不希望批處理作業佔用太多 CPU 週期時,控制批處理作業很有用。目標是防止進程運行超過指定的時間比率。它不會更改 nice 值或其他調度優先順序設置,而是更改真實的 CPU 使用率。此外,它能夠動態地、快速地適應整個系統負載。使用的 CPU 數量的控制是通過向行程發送 SIGSTOP 和 SIGCONT POSIX 信號來完成的。指定進程的所有子進程和線程將共用相同百分比的CPU。

安裝:

Ubuntu/Debian:

1
apt-get install cpulimit -y

RedHat/CentOS:

1
yum install cpulimit -y

或者使用部落格提供的rpm包進行安裝。

CentOS6:

1
https://cikeblog.com/s/cpulimit-1.9-1.1.x86_64.rpm

CentOS7:

1
https://cikeblog.com/s/cpulimit-0.2-1.20151118gitf4d2682.el7.x86_64.rpm

cpulimit內置參數:

1
2
3
4
5
6
7
8
9
10
11
12
cpulimit --help
Usage: cpulimit [OPTIONS…] TARGET
OPTIONS
-l, --limit=N percentage of cpu allowed from 0 to 800 (required)
-v, --verbose show control statistics
-z, --lazy exit if there is no target process, or if it dies
-i, --include-children limit also the children processes
-h, --help display this help and exit
TARGET must be exactly one of these:
-p, --pid=N pid of the process (implies -z)
-e, --exe=FILE name of the executable program file or path name
COMMAND [ARGS] run this command and limit it (implies -z)

有三種使用辦法:

1.根據進程ID限制:進程ID為123456的程式只能使用80%的cpu

1
cpulimit -p 123456 -l 80

2.根據進程路徑限值:itkylin只能使用80%的cpu

1
cpulimit -e /opt/www/itkylin -l 80

3.根據進程名稱限制:itkylin只能使用80%的cpu

1
cpulimit -l 80 itkylin

注意:

-l 後面限制的cpu使用量,要根據實際的核心數量而成倍減少。比如上文中的進程1234,40%的限制生效在1核伺服器中,如果是雙核伺服器,則應該限制到20%,四核伺服器限制到10%以此類推。

root使用者可以限制所有的進程,普通使用者只能限制自己有許可權管理的進程。





💘 相关文章

写一条评论

Based on Golang + fastHTTP + sdb | go1.16.13 Processed in 3ms