限制Linux中进程的CPU使用率的2种方法
时间:2020-03-05 15:28:26 来源:igfitidea点击:
在管理Linux系统时,我们需要限制进程的CPU使用率,因为它会消耗更多的CPU使用率并影响整个系统的性能。
本教程将向我们展示如何在Centos 7和Ubuntu 16上控制进程的CPU时间。
1)cpulimit
cpulimit是一个很好的命令行工具,用C编程语言编写,用于限制进程的CPU使用率。
默认情况下不存在,因此我们需要安装它。
要在Ubuntu 16.04上安装cpulimit,请执行以下操作
# apt-get install cpulimit
在centos 7上安装
# yum install epel-release # yum install cpulimit
我们通过使用'--limit'或者'-l'选项设置进程的使用百分比来限制CPU使用率。
在限制CPU使用率之前,我们需要查找正在使用所有CPU时间的进程或者命令。
通过执行以下三种使用cpulimit的方法
- 在带有'--executable'或者'-e'选项的可执行程序上
cpulimit -e program -l %cpu
- 使用'--path'或者'-P'选项在文件的绝对路径名上
cpulimit -P path -l %cpu
- 使用'--pid'或者'-p'选项在进程的PID上
cpulimit -p process_pid -l %cpu
因此,我们将首先检查消耗CPU时间的进程/程序
# top
然后,我们可以将以下命令与程序名称一起使用。
# cpulimit -e vmware-vmx -l 40 Process 3185 detected
我们可以看到该工具已自动检测到程序的进程ID。
我们可以使用以下进程ID限制CPU使用量:
# cpulimit -p 3185 -l 40 Process 3185 detected
我们可以在下面看到结果
我们可以使用'--background'或者'-b'选项在后台运行cpulimit
2)cputool
我们可以使用cputool,它也使用cpulimit来减少CPU使用率。
这也可以通过使用负载限制来完成。
默认情况下cputool不存在,因此我们需要在Ubuntu 16上安装它
# apt install cputool
要使用cputool,我们需要遵循以下语法
cputool --cpu-limit %cpu -p process_pid
在相同的示例中,我们可以按以下方式使用cputool
# cputool --cpu-limit 30 -p 3185
该命令将控制终端,因此我们可以在后台使用它,如下所示:
# cputool --cpu-limit 30 -p 3185 & [1] 16808
使用这些工具,可以轻松地控制已运行的进程的CPU使用率。
我们无需取消进程以减少使用量,而只需分配一个不超过的百分比即可。