首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的CPU无视例如cpupower设置的最大频率,以及如何防止CPU变得太热?

为什么我的CPU无视例如cpupower设置的最大频率,以及如何防止CPU变得太热?
EN

Unix & Linux用户
提问于 2021-05-22 09:37:30
回答 1查看 3.3K关注 0票数 1

我在我的联想T530笔记本电脑上使用Debian 10 (buster),它有一个i7-3630QM。多年来,我一直在为频率缩放和温度而烦恼,但到目前为止,它已经成为了一个小问题。

当我尝试运行CPU密集型应用程序时,CPU可能会变得很热很长一段时间,我说的是100°C以上。现在,这台笔记本电脑已经有8年多的历史了,我不知道它还能持续多久,所以我想

  1. 让它持续尽可能长时间
  2. 降低噪音污染,因为风扇在高负荷和高温下变得相当响亮。

几年前,有几个管理者可以用来做这件事,所以我很惊讶现在只有powersaveperformance。我尝试使用cpupower设置最高频率为2.4GHz:cpufreq-set -u 2.4GHz

不幸的是,这似乎并没有真正起作用。cpupower frequency-info报告

代码语言:javascript
复制
  current policy: frequency should be within 1.20 GHz and 2.40 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.

但是当我启动CPU密集型应用程序(特别是需要3D图形加速的应用程序)时,在我的游戏"Stellaris“中,CPU变得非常热,这并不奇怪,因为cpupower frequency-info报告了。

代码语言:javascript
复制
  hardware limits: 1.20 GHz - 3.40 GHz
  available cpufreq governors: performance powersave
  current policy: frequency should be within 1.20 GHz and 2.40 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 3.30 GHz (asserted by call to kernel)

实际上是自相矛盾的。

现在,这个问题已经在问题中讨论过了,作者在他的回答中解决了这个问题。不过,有人说这是行不通的。在我的例子中,它也不起作用。这一期中的另一张海报在他的回答中写道,这也不起作用,实际上是链接到内核文档,其中声明实际上不可能可靠地设置频率。

我的笔记本电脑的风扇最近已经清洗和新的热糊已经应用,但正如我说过,这台机器是旧的,但变得热。另一个海报建议将最大负载设置为一个较低的百分比,这实际上可以工作,但不会纠正我的问题,因为CPU会变得非常热。

有没有人知道一种不同的、可靠的限制CPU频率的方法?在前面的示例Stellaris中,我想我注意到CPU试图将频率限制在2.4GHz的设置值,当游戏加载时和我在主菜单中时。一旦我加载一个保存文件,并在游戏本身,它猛增到它的最大频率。应用程序本身是否有可能重写这些值?

有没有人知道还有什么其他方法可以让CPU不能达到这么高的温度呢?当CPU开始节流时,是否可以设置一个较低的温度阈值?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2021-05-27 06:15:05

多亏了阿特姆·塔什基诺夫,我才能解决这个问题。他在评论中写道

尝试使用intel_pstate:https://silvae86.github.io/2020/06/13/switching-to-acpi-power的acpi-cpufreq整数

这就成功了。

我不得不通过acpi_cpufreq安装apt-get驱动程序(在我的例子中它已经安装了)

代码语言:javascript
复制
apt-get install acpi-support acpid acpi

并通过向/etc/default/grub添加intel_pstate=disable来编辑GRUB_CMDLINE_LINUX_DEFAULT,如下所示(在我的例子中):

代码语言:javascript
复制
GRUB_CMDLINE_LINUX_DEFAULT="quiet nosplash debug intel_pstate=disable"

然后运行update-grub并重新启动机器。因此,不再使用intel_pstate驱动程序,取而代之的是acpi_cpufreq。除了有更多的调控器可供选择(您可以阅读这里关于它们),最重要的是,我现在可以打开ondemand调控器,并设置一个最小和最大的频率。而且它是这样的。在我的例子中,我用

代码语言:javascript
复制
cpupower frequency-set -g ondemand -d 1.2GHz -u 2.0GHz

到目前为止机器还没有太热。

在经历了温度问题之后,我想出了问题的所在。这是GPU的频率和事实,这个问题仍然发生在使用3D应用程序。在/sys/kernel/debug/dri/0/i915_ring_freq_table中,您可以看到GPU可以在相应的最大CPU频率下运行的最大频率。在设置CPU频率后,GPU频率也必须在/sys/class/drm/card0/gt_max_freq_mhz/sys/class/drm/card0/gt_boost_freq_mhz中进行调整。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/650873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档