需求:

由于程序是多进程,所以会极大使用CPU资源,但CPU如果长时间处于高强度工作(也就是长时间超频),温度极高,在主板里有个CPU温度保护,超过一定温度就会重启。所以我想直接限制CPU的最高频率,那么就不会出现长时间超频,那么问题也不会特别高(虽然也很高),但最起码不会程序跑着跑着就重启了。

方法一

这种方法解决了我的问题,我给每个CPU核心设置了最高频率。

安装cpufrequtils: sudo apt-get install cpufrequtils

查看cpu: sudo cpufreq-info

设置cpu模式: cpufreq-set -g {powersave, userspace, ondemand, conservative, performance}

对应于{最省电(最低频率),用户控制,最高或最低,正常,最大性能}

模式就是执行cpufreq-info后看到的所支持的模式。

比如以下几种:powersave, userspace, ondemand, conservative, performance。

powersave,是无论如何都只会保持最低频率的所谓“省电”模式;

userspace,是自定义频率时的模式,这个是当你设定特定频率时自动转变的;

ondemand,一有cpu计算量的任务,就会立即达到最大频率运行,等执行完毕就立即回到最低频率;

conservative,翻译成保守的,也就是默认的模式,一般选择这个,会自动在频率上下限调整;

performance,顾名思义只注重效率,无论如何一直保持以最大频率运行。

设置cpu频率: cpufreq-set -f {600~1500}(设置你的频率,使用cpufreq-info可以查看你的cpu支持哪些)

选择 1,3,4,5 的时候在以下范围内自动控制:使用 cpufred-set -d 600M (最低) ,cpufreq-set -u 1.5G (最高)

对于非单核的cpu需要加上参数 -c ,c就是cpu的序号,使用cpufreq-info可以查询到。

方法二

这里的cpulimit好像不能满足我的需求,但还是有他自己的用途的,他对于单个进程,单个应用都有用。

安装cpulimit

sudo apt-get install cpulimit

基准测试CPU使用率

让我们的基准测试CPU使用率而不请将CPULimit。

下面是如何利用你的CPU有一个应用程序的示例:

sudo md5sum /dev/zero &

BIOS限制cpu温度会降低功效吗 bios 限制cpu频率_firefox


这个’forks’md5sum然后加工成的背景。现在你可以看到CPU使用率在顶部:

BIOS限制cpu温度会降低功效吗 bios 限制cpu频率_单核_02


正如你可以看到它消耗的CPU资源几乎100%(因为我们在这滴一个CPU核心)。我们可以把这个过程给前台使用FG和CTRL + C取消它:

BIOS限制cpu温度会降低功效吗 bios 限制cpu频率_单核_03


限制CPU使用率与请将CPULimit

现在我们可以测试请将CPULimit,看看它实际上做什么它应该是。

让我们限制CPU使用率到98%,并运行相同的命令:

sudo cpulimit -l 98 md5sum /dev/zero &

BIOS限制cpu温度会降低功效吗 bios 限制cpu频率_firefox_04


果然,这是限制为98%:

BIOS限制cpu温度会降低功效吗 bios 限制cpu频率_BIOS限制cpu温度会降低功效吗_05


这里是叉4的进程不受任何限制的脚本,并让他们在您的服务器上同时运行:

for j in `seq 1 4`; do md5sum /dev/zero & done

要使用请将CPULimit为每个进程,将其放置在命令前:

for j in `seq 1 4`; do cpulimit -l 40 md5sum /dev/zero & done

BIOS限制cpu温度会降低功效吗 bios 限制cpu频率_单核_06


限制firefox使用30% cpu利用率

# cpulimit -e firefox -l 30限制进程号1313的程序使用30% cpu利用率

# cpulimit -p 1313 -l 30根据进程名找出pid的方法

# ps aux | less
# ps aux | grep firefox
# pgrep -u vivek php-cgi
# pgrep lighttpd 可以使用绝对路径限制进程的cpu利用率

# cpulimit -P /opt/firefox/firebox -l 30单核cpu和多核cpu

单核cpu的使用率范围为0%-100%,四核cpu的使用率范围为0%-400%

参考链接 :
ubuntu限制CPU使用率 :

简单几步优化Ubuntu 降低CPU使用率

linux 调整CPU程序调度的几种方法 :