Linux限制每个进程的CPU使用率

时间:2020-01-09 14:16:09  来源:igfitidea点击:

我不想后台进程吃掉我所有的CPU。
我知道如何找出CPU使用率,但如何限制Linux操作系统下进程的cpu使用率?
如何强制某个过程将自身限制为25%?
您可以使用cpulimit程序尝试限制进程的cpu使用率。
限制以"百分比"表示,而不是以cpu时间表示。

cpulimit不会作用于nice值或其他调度优先级的东西,而是作用于实际的cpu用法。
而且,它能够动态,快速地适应整个系统的负载。

安装cpulimit

执行以下命令以安装最新的稳定版本:

# cd /tmp
# wget 'http://downloads.sourceforge.net/cpulimit/cpulimit-1.1.tar.gz'
# tar -zxvf cpulimit-1.1.tar.gz
# cd cpulimit-1.1
# make
# cp cpulimit /usr/local/sbin/
# rm -rf cpulimit*

关于Debian/Ubuntu Linux用户的说明

执行以下命令以安装cpulimit:

$ sudo apt-get update
$ sudo apt-get install cpulimit

如何使用cpulimit?

要将名为firefox的进程的CPU使用率限制为30%,请输入:

# cpulimit -e firefox -l 30

要通过使用其PID将进程的CPU使用率限制为30%,请输入:

# cpulimit -p 1313 -l 30

要找出该过程的PID,请使用以下任何一种方法:

# ps aux | less
# ps aux | grep firefox
# pgrep -u Hyman php-cgi
# pgrep lighttpd

您还可以使用可执行文件的绝对路径名,输入:

# cpulimit -P /opt/firefox/firebox -l 30

其中:

  • -p:进程PID。
  • -e:进程名称。
  • -l:允许的CPU百分比(从0到100)。
  • -P:可执行程序文件的绝对路径名。

root与普通用户帐户

cpulimit应该至少与运行受控进程的同一用户一起运行。
但是,如果以root用户身份运行cpulimit会更好,以便具有更高的优先级和更精确的控制。

关于SMP(多核/MultiCpu)系统的注意事项

再次引用项目网页:

如果您的计算机上有一个处理器,则可以将百分比范围从0%限制为100%,这意味着,例如,如果设置为50%,则您的进程每秒使用的CPU时间不能超过500毫秒。
但是,如果您的计算机有四个处理器,则百分比可能在0%到400%之间变化,因此将限制设置为200%意味着使用的可用功率不超过一半。
无论如何,该百分比与您获得最高收入时所看到的相同。

相关节流实用程序

  • ionice实用程序避免备份Shell脚本/程序磁盘I/O突然爆发。
  • 限制rsync工具的磁盘I/O。
  • Linux nice命令:使用修改后的调度优先级运行进程(nicees)
  • renice命令:更改已运行进程的优先级