云网牛站
所在位置:首页 > Linux命令 > 在Fedora Linux上安装cpulimit及使用cpulimit命令的方法

在Fedora Linux上安装cpulimit及使用cpulimit命令的方法

2021-06-12 09:36:17作者:区小凡稿源:云网牛站

本文介绍在Fedora Linux系统上使用cpulimit命令释放你的CPU,内容有:安装cpulimit、查看cpulimit的文档、使用示范。

 

前言

在Linux系统上管理系统资源的推荐工具是cgroups,虽然在可以调整的限制类型(CPU、内存、磁盘I/O、网络等)方面非常强大,但配置cgroups并非易事。nice命令自1973年以来一直可用,但它只调整在处理器上竞争时间的进程之间的调度优先级。nice命令不会限制进程每单位时间可以消耗的CPU周期百分比。cpulimit命令提供了两全其美的功能,它限制了进程每单位时间可以分配的CPU周期百分比,并且相对容易调用。

cpulimit命令主要用于长时间运行和CPU密集型进程,编译软件和转换视频是长时间运行进程的常见例子,可以最大限度地利用计算机的CPU。限制此类进程的CPU使用率将释放处理器时间以供可能在计算机上运行的其他任务使用。限制CPU密集型进程还可以降低系统的功耗、热量输出以及可能的风扇噪音。同时,限制进程的CPU使用率的代价是它需要更多的时间来运行完成。

 

安装cpulimit

cpulimit命令在默认的Fedora Linux存储库中可用。运行以下命令在Fedora Linux系统上安装cpulimit:

$ sudo dnf install cpulimit

 

查看cpulimit的文档

cpulimit包没有附带手册页,使用以下命令查看cpulimit的内置文档。下面提供了输出。但是您可能希望在您自己的系统上运行该命令,以防选项在选写本文后发生变化,如下:

$ cpulimit --help

Usage: cpulimit [OPTIONS…] TARGET

OPTIONS:

-l, --limit=N percentage of cpu allowed from 0 to 800 (required)

-v, --verbose show control statistics

-z, --lazy exit if there is no target process, or if it dies

-i, --include-children limit also the children processes

-h, --help display this help and exit

TARGET must be exactly one of these:

-p, --pid=N pid of the process (implies -z)

-e, --exe=FILE name of the executable program file or path name

COMMAND [ARGS] run this command and limit it (implies -z)

截图如下:

在Fedora Linux上安装cpulimit及使用cpulimit命令的方法

 

使用示范

为了演示如何使用cpulimit命令,下面提供了一个人为的计算密集型Python脚本。该脚本首先无限制运行,然后以50%的限制运行。它计算第42个斐波那契数的值。在这两种情况下,脚本都作为time命令的子进程运行,以显示计算答案所需的总时间:

$ /bin/time -f '(computed in %e seconds)' /bin/python -c 'f = lambda n: n if n<2 else f(n-1)+f(n-2); print(f(42), end=" ")'

267914296 (computed in 51.80 seconds)

$ /bin/cpulimit -i -l 50 /bin/time -f '(computed in %e seconds)' /bin/python -c 'f = lambda n: n if n<2 else f(n-1)+f(n-2); print(f(42), end=" ")'

267914296 (computed in 127.38 seconds)

截图如下:

在Fedora Linux上安装cpulimit及使用cpulimit命令的方法

运行该命令的第一个版本时,您可能会听到PC上的CPU风扇加速。但是在运行第二个版本时不应该这样做。该命令的第一个版本不受CPU限制,但不应导致您的PC陷入困境。它的编写方式使其最多只能使用一个CPU。大多数现代PC都有多个CPU,当其中一个CPU 100%忙碌时,可以轻松地同时运行其他任务。要验证第一个命令是否最大化您的一个处理器,请在单独的终端窗口中运行top命令并按1键,按Q键退出top命令。参考在Linux系统中使用top命令和ps命令查找高CPU消耗进程

将限制设置为100%以上仅对具有任务并行能力的程序有意义。对于此类程序,每增加100%表示CPU的完全利用率(200%=2个CPU,300%=3个CPU,等等)。

请注意,-i选项已传递给上述示例中的cpulimit命令。这是必要的,因为要限制的命令不是cpulimit命令的直接子进程。相反,它是time命令的子进程,而time命令又是cpulimit命令的子进程。如果没有-i选项,cpulimit只会限制时间命令。

 

注意事项

如果要限制从桌面图标启动的图形应用程序,请将应用程序的.desktop文件(通常位于/usr/share/applications目录下)复制到您的~/.local/share/applications目录并修改Exec相应的行,然后运行以下命令以应用更改:

$ update-desktop-database ~/.local/share/applications

 

相关主题

Cputroller:一款Linux下查看调节CPU的策略、风扇转速的工具

Linux命令子频道
精选文章
热门文章