在之前的一篇文章中,我们已经解释了CPUTool,用于限制和控制 Linux中任何进程的CPU利用率 。 如果CPU /系统负载超出定义的阈值,它允许系统管理员中断进程(或进程组)的执行。 在这里,我们将学习如何使用类似的工具cpulimit 。
Cpulimit用于以与CPUTool相同的方式限制进程的CPU使用率,但与其对应方案相比,它提供了更多的使用选项。 一个重要的区别是,cpulimit不像cputool那样管理系统负载。
建议阅读: 9在Linux上获取CPU信息的有用命令
安装CPULimit以限制CPU在Linux中的使用过程
CPULimit可以使用软件包管理工具从Debian / Ubuntu及其衍生软件的默认软件库进行安装。
$ sudo apt install cpulimit
在RHEL / CentOS和Fedora中 ,您需要首先启用EPEL存储库 ,然后安装cpulimit,如图所示。
#yum install epel-release
#yum install cpulimit
使用CUPLimit限制CPU使用率
在本小节中,我们将介绍cpulimit的工作原理。 首先,让我们在后台运行一个命令(我们在覆盖cputool时看到的同样的dd命令 ),这个命令应该导致CPU占用率很高(注意在运行命令后打印出进程PID)。
$ dd if=/dev/zero of=/dev/null & [1] 17918
接下来,我们可以使用输出正在运行的Linux系统的实际频繁更新状态的顶部或扫视工具来观察上述命令的CPU使用情况。
$ top
监控Linux中的CPU使用情况
看看上面的输出,我们可以看到dd进程正在利用最高百分比的CPU时间100.0% 。
但是我们可以使用cputlimit来限制这一点,如下所示。 --pid
或-p
选项用于指定PID,-- --limit
或-l
用于设置进程的使用百分比。
以下命令将dd命令 ( PID 17918 )限制为使用一个CPU内核的50% 。
$ sudo cpulimit --pid 17918 --limit 50 Process 17918 detected
一旦我们运行cpulimit,我们可以使用top或glance来查看dd命令的当前CPU使用情况。 从输出值的范围为( 51.5%-55.0%或略高于)。
在Linux中限制CPU使用过程
我们可以第二次调整其CPU使用率,如下所示,此次进一步降低百分比如下:
$ sudo cpulimit --pid 17918 --limit 20 Process 17918 detected
像我们以前一样,我们可以运行顶部或扫视来查看进程的新CPU使用率,范围为20%-25.0%或略高于此值。
$ top
Linux中的CPU CPU使用情况
注意 :shell变得非交互式 - 当cpulimit运行时,不会指望任何用户输入。 要杀死它(应该停止CPU使用限制操作),请按[Ctrl + C]
。
要运行cpulimit作为后台进程,请使用--background
或-b
开关,释放终端。
$ sudo cpulimit --pid 17918 --limit 20 --background
要指定系统中存在的CPU核心数量,请使用--cpu
或-c
标志(通常会自动检测)。
$ sudo cpulimit --pid 17918 --limit 20 --cpu 4
而不是限制进程的CPU使用率,我们可以用--kill
或-k
选项来杀死它。 信号发送到进程的信号是SIGCONT ,但要发送不同的信号,请使用--signal
或-s
标志。
$ sudo cpulimit --pid 17918 --limit 20 --kill
如果没有合适的目标进程,或者如果它死机,则退出,包括这样的-z
或--lazy
。
$ sudo cpulimit --pid 17918 --limit 20 --kill --lazy
有关其他信息和使用选项,请查看cpulimit手册页。
$ man cpulimit
请查看以下有用的指南,以查找CPU信息和CPU /系统性能监视。
- 通过Linux中最高内存和CPU使用情况查找最佳运行进程
- Cpustat - 通过在Linux中运行进程监视CPU利用率
- 通过Linux中最高内存和CPU使用情况查找最佳运行进程
- 20个用于监视Linux性能的命令行工具
- 13 Linux性能监控工具 - 第2部分
相比之下,在测试CPUTool和CPULimit之后 ,我们注意到前者提供了更有效和可靠的“CPU使用限制”功能。
这是根据给定进程运行这两种工具后观察到的CPU使用率的百分比范围。 尝试这两种工具,并使用下面的反馈表将您的想法添加到本文中。