保持 CPU 忙碌在一定百分比(以防止 CPU 嗡嗡声频率噪音)

保持 CPU 忙碌在一定百分比(以防止 CPU 嗡嗡声频率噪音)

Dell Inspiron 7559当我触摸触摸板时,键盘下方会发出电嗡嗡声,频率会改变。

然而,如果 CPU 繁忙,我就听不到嗡嗡声,因为频率超出了我的听力范围。

我希望运行一个脚本来保持 CPU 足够繁忙并保持笔记本电脑安静,如下所示:

#!/bin/sh
recursiveDelay(){ sleep 0.001; recursiveDelay;}
recursiveDelay

但它的CPU百分比逐渐变得越来越高。

我怎样才能将其保持在一定的百分比?

答案1

可能发生的情况是 CPU 进入更积极的节能模式。这会导致内部开关模式稳压器进入脉冲跳跃模式,将开关频率降低到可听范围。噪声来自电感器和电容器,两者都具有轻微的颤噪性(也可以反向工作;发出声音)

这是一个糟糕的设计,但你还是坚持了下来。

解决此问题的“最佳”方法是进入 BIOS 并将 CPU 配置为不太激进的限制。这将阻止所有花哨的省电模式启动,因此您不必搞乱这些任务。

另一种方法是运行有用任务,例如SETI@Home或者你可能想做的其他事情。我思考SETI@Home 可以设置 CPU 限制百分比,但如果没有,您也许可以使用cpulimitlinux 命令。

最无趣的方法是使用压力测试实用程序之一来消耗周期。 techraf 已经建议了stress-ng,并且还有一些其他类似的实用程序。

如果您找不到具有足够细粒度的节流阀的实用程序,我为您准备了这个 Perl 单行代码。节流可以调整。我使用 perl 因为这是我所知道的。插入您最喜欢的编程语言。

perl -MTime::HiRes=sleep -e 'sleep 0.0001 while 1'

更改 0.0001 部分将使其使用更多或更少的 CPU。

答案2

在 Debian 或 Ubuntu 上安装压力NGapt-get install stress-ng

然后运行:

stress-ng -c 1 -l 50

使用-c(CPU 数量)和-l(负载百分比)参数。


对于 Fedora/RedHat/CentOS 似乎你必须编译它(源存储库是这里)按照以下程序:

wget http://kernel.ubuntu.com/~cking/tarballs/stress-ng/stress-ng-0.05.25.tar.gz
tar zxvf stress-ng-0.05.25.tar.gz
cd stress-ng-0.05.25/
make
./stress-ng -c 2 -l 50

相关内容