限制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使用率。
我们无需取消进程以减少使用量,而只需分配一个不超过的百分比即可。