AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 491944
Accepted
zjeffer
zjeffer
Asked: 2019-01-02 17:03:41 +0800 CST2019-01-02 17:03:41 +0800 CST 2019-01-02 17:03:41 +0800 CST

Linux中的CPU温度:节流或错误读数?

  • 772

使用带有 i7-7700HQ(基本时钟 2.8Ghz)和 GTX 1050 的 Lenovo Legion Y520。

我在 linux 中收到 CPU 过热警告,这影响了我在游戏中的表现(见于 Payday 2 和 CS:GO)。我在 Windows 中从来没有遇到过问题。

这是我在尝试解决此问题时发现的:

在 Windows 10 中(使用 aida64)

  • Windows 在空闲时保持在 3.4 Ghz 左右(因为我的电源设置设置为“高性能”而不是默认的“平衡”),温度约为 50 摄氏度。

  • 当对 CPU 施加压力时,温度会缓慢(在几秒钟内而不是立即)从大约 50C 到大约 75C 并舒适地保持在那里。压力时时钟速度约为 2.9Ghz。利用率始终为 100%。Aida64 不报告节流。CPU 内核上的电压在施加压力时从大约 1.1 变为 0.9。

在 Arch Linux 中(使用 s-tui)

  • Linux 在空闲时保持在 2.0Ghz 左右,温度约为 50C。

  • 这就是它变得奇怪的地方:当对 CPU 施加压力时,温度立即从 50C 变为大约 93C。强调时的时钟速度正好是 3.4Ghz。利用率始终为 100%。关闭压力测试后,温度立即回到 50C 左右,就好像什么都没发生过一样。即使在长时间的压力下,笔记本电脑在执行此操作时当然不会感觉它会加热到 90C+。

这张图片显示了温度、功率和频率是如何同时下降的。请注意在这么短的时间内 CPU 温度变化了多少。 linux 节流的图片

如何解决此限制问题?我是否在 linux 中降低了我的 CPU 电压?为什么它在 Linux 中读取温度错误,但在 Windows 中却没有?

我使用 cpupower 将配置文件从 powersave 更改为 performance。我仍然在 s-tui 中看到同样的限制。设置为性能时,空闲 cpu 频率会上升(而不是大约 2000-2500Mhz 到始终保持在 3400Mhz),但这是唯一改变的事情。

风扇控制

我尝试使用fancontrol (lm_sensors)控制风扇,但 pwmconfig 说没有安装支持 pwm 的传感器模块。

我用NBFC尝试过,但无论我选择什么配置文件,它似乎都没有做任何事情。我什至不知道NBFC是否可以控制我的粉丝,但是在选择配置文件时它不会报告任何错误。

我也试过thinkfan,但它似乎对节流没有帮助。它还认为我的风扇速度为 8RPM,请参阅此线程

解决方案

我发现使用 cpupower 将允许的最大 cpu 频率降低到 3100MHz 而不是默认的 3800 可以解决所有问题。

sudo cpupower frequency-set -u 3100MHz

我还将 max_freq 更改/etc/default/cpupower为相同的值,以使其永久化。我发现这确实会导致游戏中的 fps 略有下降,但并不严重。至少我的fps是稳定的:)

可悲的是,我认为这可能会导致非游戏任务的性能下降,例如编译某些东西时。

1.5年后

我刚刚再次对 Windows 进行了稳定性测试(使用 AIDA64),发现它现在也是热节流阀。正如您在下图中看到的那样,温度迅速跃升至 90 多度,并且 AIDA64 报告节流。时钟速度在 3.4GHz 处闲置,在开始测试几秒钟后降至 800MHz 左右,一秒钟后再次跃升至 3.4GHz。它不会决定在压力测试到 2.9GHZ(像以前一样)时降低时钟速度。

Windows 上的 AIDA64,电源设置 = 高性能

为什么它突然停止降低 Windows 中的最大频率?

cpu intel
  • 2 2 个回答
  • 17336 Views

2 个回答

  • Voted
  1. Best Answer
    Jeff A
    2019-01-02T18:04:47+08:002019-01-02T18:04:47+08:00

    差异是由于 windows 和 linux 使用不同的 CPU 节流配置文件。

    您确实可以在 linux 上对此进行一些控制。例如,以下命令将显示当前正在使用的配置文件:

    cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

    有多种方法可以选择要使用的配置文件。Arch Linux wiki 对此有很好的信息,可能值得一读:

    CPU 频率缩放 - Arch Wiki

    还有一个风扇控制问题——你需要确保你有合适的驱动程序来控制你的风扇,并且在游戏时将它们设置为足够高的速度。

    笔记本电脑上的 Linux可能是一个有用的资源。

    • 8
  2. Lamp
    2020-07-20T13:50:39+08:002020-07-20T13:50:39+08:00

    我相信差异的原因是因为您的 Windows 安装具有英特尔动态平台和热框架驱动程序,它可以调整频率以管理温度。您的 Linux 安装没有此功能,因此无论温度如何,您的 CPU 都只会以最高频率运行,因此它会跳到最高 100C,直到 CPU 的固件将所有频率降至最低,直到温度下降,然后它返回到最高频率,这重复。

    不幸的是,英特尔 DPTF 驱动程序不适用于 linux AFAIK,所以除非你可以设置一些软件来做它的等价物(也许是热?),我想你只能简单地限制最大频率。

    不过,我不明白温度是如何瞬间变化的(我朋友的 Y520 缺少英特尔 DPTF 驱动程序,它会在几分之一秒内在 60C 和 100C 之间变化;我从未见过任何 CPU 温度变化如此之快)。我认为这是由于 CPU 和散热器之间的热接触不良造成的,但也许芯片是这样设计的,它应该由 Intel DPTF 驱动程序管理才能正常工作。

    • 3

相关问题

  • 在 Linux 中设置 CPU 内核利用率限制

  • CPU 怎么知道有 IO 挂起?

  • 有没有办法确定我的系统是否支持 Intel AMT?

  • 机器总运行时间

  • 为什么 OpenVZ 容器中的 nproc 和 nproc --all 的 CPU 计数不同?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve