如何使用 cpulimit 限制 Linux 中进程的 CPU 使用率
对某些进程使用过多资源感到沮丧?使用 cpulimit 限制 CPU 使用,这是一个适用于 Linux 的免费实用程序。
当您在 Linux 系统上工作时,许多进程在后台运行。这些进程以 CPU 使用率和时间的形式占用系统资源。
虽然在大多数情况下,操作系统会自动管理这些进程,但有时资源密集型进程可能会由于繁重的处理或开发不良而过度利用 CPU。答案通常是直接杀死该进程或将其CPU使用率限制在一定限度内。
幸运的是,在 Linux 上,您可以使用名为 cpulimit 的命令行实用程序来限制进程的 CPU 使用率。
如何识别 CPU 使用率高的进程
在限制进程可以使用的系统资源百分比之前,您需要找到该特定进程的进程 ID。进程 ID(或 PID)是系统用来识别进程的唯一编号。
在 Linux 上,有多种方法可以获取与进程相关的详细信息。您可以使用top命令获取系统上当前运行的进程列表。
top
输出 :
%CPU 列显示特定进程正在使用的 CPU 百分比。如果您的计算机尝试处理的数据超出其承受能力,则某些特定进程的 CPU 使用率将达到 100%。检查表中是否有CPU 使用率较高的进程。
找到 CPU 使用率高的进程后,记下其 PID。进程 ID 对于限制进程的使用非常重要。
使用 cpulimit 限制 CPU 使用
如上所述,cpulimit 是一个命令行实用程序,可对计算机上特定进程使用的系统资源量添加限制。由于大多数 Linux 发行版并未预装 cpulimit,因此您必须手动安装它。
您可以在 Ubuntu 和其他基于 Debian 的发行版上安装该软件包,如下所示:
sudo apt install cpulimit
在基于 Arch 的发行版(例如 Manjaro Linux)上:
sudo pacman -S cpulimit
Cpulimit 可在 EPEL(Extra Packages for Enterprise Linux)存储库中找到。因此,要在 CentOS 和 RHEL 发行版上安装它,您必须首先启用 EPEL 存储库。
yum install epel-release
yum install cpulimit
基本语法
要使用 cpulimit,您必须使用命令传递以下三个参数之一:
-p 或 --pid:进程的进程 ID
-e 或 --exe:可执行文件的名称
-P 或 --path:可执行文件的绝对路径
该命令的基本语法是:
cpulimit -p pid
cpulimit -e executablename
cpulimit -P /path-to-executable
限制进程的CPU使用率
您可以使用 cpulimit 实用程序的 --limit 或 -l 标志来添加对进程可以使用的资源的限制。强制 PID 81550 的进程仅使用 50% 的 CPU:
sudo cpulimit -p 81550 --limit 50
在这里,cpulimit 将限制进程在运行时的 CPU 使用率。如果停止执行 cpulimit,该特定进程的 CPU 使用率将恢复正常。
防止此问题的一个很好的解决方案是在后台运行 cpulimit。您可以在命令中添加 --background 或 -b 标志,以将命令发送到后台。
sudo cpulimit -p 81550 --limit 50 --background
如果--background选项不起作用,您可以在命令后添加与号 (&) 将其发送到后台。
sudo cpulimit -p 81550 --limit 50 &
使用top命令检查上述命令是否有效。
您可能已经注意到,dd 命令的 CPU 使用率下降至 48.8%。
使用 PID 杀死进程
您可以通过使用 --kill 标志终止进程来完全关闭进程,而不是限制 CPU 使用率。
sudo cpulimit -p 81550 --limit 50 --kill
Linux 中更智能的进程管理
如果您经常遇到 CPU 使用率较高的进程,CPUlimit 是一个很棒的实用程序。不熟悉命令行的 GNOME 用户还可以使用系统监视器来管理系统上的进程。
除了使用 cpulimit 等工具之外,您还可以降低 Linux 上的优先级,以向特定进程提供更少的资源。在 Linux 中管理进程优先级时,nice 和 renice 命令是救星。