我有一台在非常热的环境中运行的机器,它运行的 AMD 芯片过热了。我无法物理访问该机器,但我请人帮我在 BIOS 中更改了 CPU 时钟速度。
不幸的是,操作系统并不尊重这一点,并在需要时将 CPU 限制到全速。
我无法通过 apt-get 安装任何软件,也无法将任何软件上传到机器;由于安全限制,我需要在系统当前状态下工作。
我需要做的是 (1) 将机器锁定在最低 CPU 速度或 (2) 让它遵守 BIOS 指定的 CPU 速度。
答案1
如果你有cpupower
可用的命令(部分linux-tools-common
包,我认为默认包含),您可以使用省电 CPU 调速器来限制速度 - 您可以列出可用的调速器:
cpupower frequency-info --governors
示例输出:
analyzing CPU 0:
conservative ondemand userspace powersave performance
并使用以下命令进行设置(以 root 身份):
cpupower frequency-set -g GOVERNOR
例如
sudo cpupower frequency-set -g conservative
然后您可以通过运行查看当前状态sudo cpupower frequency-info
- 示例输出:
analyzing CPU 0:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: 10.0 us.
hardware limits: 800 MHz - 2.50 GHz
available frequency steps: 2.50 GHz, 2.50 GHz, 2.00 GHz, 1.80 GHz, 1.60 GHz, 1.40 GHz, 1.20 GHz, 1000 MHz, 800 MHz
available cpufreq governors: conservative, userspace, powersave, ondemand, performance
current policy: frequency should be within 800 MHz and 2.50 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 800 MHz (asserted by call to hardware).
boost state support:
Supported: yes
Active: yes
2900 MHz max turbo 4 active cores
2900 MHz max turbo 3 active cores
2900 MHz max turbo 2 active cores
3100 MHz max turbo 1 active cores
可以找到关于每个州长所做工作的文档这里- 以下是摘要(你可能需要省电摘要):
2.1 性能
CPUfreq 调节器“性能”将 CPU 静态设置为 scaling_min_freq 和 scaling_max_freq 边界内的最高频率。
2.2 省电
CPUfreq 调节器“powersave”将 CPU 静态设置为 scaling_min_freq 和 scaling_max_freq 边界内的最低频率。
2.3 用户空间
CPUfreq 调节器“用户空间”允许用户或以 UID“root”运行的任何用户空间程序通过在 CPU 设备目录中提供 sysfs 文件“scaling_setspeed”将 CPU 设置为特定频率。
2.4 按需
CPUfreq 调节器“ondemand”根据当前使用情况设置 CPU。要做到这一点,CPU 必须能够非常快速地切换频率。...
2.5 保守派
CPUfreq 调速器“保守”,与“按需”调速器非常相似,根据当前使用情况设置 CPU。它的行为不同之处在于,它会适度地增加和减少 CPU 速度,而不是在 CPU 有任何负载时立即跳到最大速度。这种行为更适合电池供电的环境。...
这个调速器可以很容易地设置使用(甚至有Unity 扩展可以从桌面用户的面板上使用,并且可以在使用时节省大量电量(笔记本电脑的额外一小时/半小时电池寿命等)