需要限制 CPU 使用率:使用软件cpulimit,这个软件使用非常简单
cpulimit 的原理: 为进程预设一个 cpu 占用率上限,并实时监控进程是否超出此上限值,若超出则让该进程暂停运行一段时间。cpulimit 使用 SIGSTOP 和 SIGCONT 这两个信号来控制进程。它不会修改进程的 nice 值,而是通过监控进程的 CPU 占用率来做出动态调整。
cpulimit 的优势是可以控制进程的cpu使用率的上限值。但与 nice 相比也有缺点,那就是即使 cpu 是空闲的,进程也不能完全使用整个 cpu 资源。
在Debian 或Ubuntu 系列的Linux 中,可以使用apt 来安装:
sudo apt-get install cpulimit
(1)指定pid号
# 限制PID 为21203 的程式其CPU 用量上限为50%
cpulimit --pid 21203 --limit 50
或者
cpulimit -p 21203 -l 50
(2)指定程式的名称
# 以程式名称来指定
cpulimit --exe md5sum --limit 50
或是以绝对路径的方式来指定,这样可以避免不同程式有相同名称的问题:
# 以程式名称来指定
cpulimit --path /usr/bin/md5sum --limit 50
(3)程序执行前设置
如果在程式执行前就已经确定要调整CPU 用量,也可以直接以 cpulimit 来执行程式,例如:
# 以cpulimit 直接执行程式
cpulimit --limit 50 -- md5sum /dev/urandom
cpulimit --limit 50 -- python3 example.py