![保持 CPU 忙碌在一定百分比(以防止 CPU 嗡嗡声频率噪音)](https://linux22.com/image/6756/%E4%BF%9D%E6%8C%81%20CPU%20%E5%BF%99%E7%A2%8C%E5%9C%A8%E4%B8%80%E5%AE%9A%E7%99%BE%E5%88%86%E6%AF%94%EF%BC%88%E4%BB%A5%E9%98%B2%E6%AD%A2%20CPU%20%E5%97%A1%E5%97%A1%E5%A3%B0%E9%A2%91%E7%8E%87%E5%99%AA%E9%9F%B3%EF%BC%89.png)
Dell Inspiron 7559
当我触摸触摸板时,键盘下方会发出电嗡嗡声,频率会改变。
然而,如果 CPU 繁忙,我就听不到嗡嗡声,因为频率超出了我的听力范围。
我希望运行一个脚本来保持 CPU 足够繁忙并保持笔记本电脑安静,如下所示:
#!/bin/sh
recursiveDelay(){ sleep 0.001; recursiveDelay;}
recursiveDelay
但它的CPU百分比逐渐变得越来越高。
我怎样才能将其保持在一定的百分比?
答案1
可能发生的情况是 CPU 进入更积极的节能模式。这会导致内部开关模式稳压器进入脉冲跳跃模式,将开关频率降低到可听范围。噪声来自电感器和电容器,两者都具有轻微的颤噪性(也可以反向工作;发出声音)
这是一个糟糕的设计,但你还是坚持了下来。
解决此问题的“最佳”方法是进入 BIOS 并将 CPU 配置为不太激进的限制。这将阻止所有花哨的省电模式启动,因此您不必搞乱这些任务。
另一种方法是运行有用任务,例如SETI@Home或者你可能想做的其他事情。我思考SETI@Home 可以设置 CPU 限制百分比,但如果没有,您也许可以使用cpulimit
linux 命令。
最无趣的方法是使用压力测试实用程序之一来消耗周期。 techraf 已经建议了stress-ng,并且还有一些其他类似的实用程序。
如果您找不到具有足够细粒度的节流阀的实用程序,我为您准备了这个 Perl 单行代码。节流可以调整。我使用 perl 因为这是我所知道的。插入您最喜欢的编程语言。
perl -MTime::HiRes=sleep -e 'sleep 0.0001 while 1'
更改 0.0001 部分将使其使用更多或更少的 CPU。
答案2
在 Debian 或 Ubuntu 上安装压力NG和apt-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