cpulimit:
cpulimit 命令的工作原理是为进程预设一个 cpu 占用率门限,并实时监控进程是否超出此门限,若超出则让进程暂停运行一段时间。cpulimit 使用 SIGSTOP 和 SIGCONT 这个两个信号来控制进程。他不会修改进程的 nice 值,而是通过监控进程的 cpu 占用率来做出动态调整。
限制应用程序 xxx.bin 的 cpu 使用率不超过 10%
cpulimit -l 10 xx.bin
限制进程 PID 为 1000 的程序 cpu 使用率不超过 20%
cpulimit -l 20 -p 1000
nice:
nice 命令可以修改进程的优先级,这样就可以让进程运行得不那么频繁。nice 值的取值方位是[-20,19],-20表示最高优先级,而19表示最低优先级。linux进程的默认 nice 值为0。使用 nice 命令(不带任何参数时)可以将进程的 nice 值设置为10。
显示当前进程的优先级,nice命令不带任何参数
nice
调整进程的优先级,将 xxx.bin 进程优先级调整为 0+10(10为调整值,xxx.bin 优先级=原优先级+调整值)
nice -n 10 xxx.bin
renice
调整进程 nice 值,只有root权限才能提升优先级
renice -n 5 -p1000
cpulimit 的优势是可以控制进程的 cpu 使用率的上限值。但与 nice 相比也有一个缺点,那就是即使 cpu 是空闲的,进程也不能完全使用整个 cpu 资源。