本文介绍在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) 截图如下:
使用示范 为了演示如何使用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) 截图如下:
运行该命令的第一个版本时,您可能会听到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
相关主题 |