我正在尝试禁用 CPU 频率调整并将处理器限制为单一速度。但似乎有什么东西在不断改变处理器速度。你知道为什么会发生这种情况吗?
我使用的是 16.04,处理器是 A10-7870K,我已从 BIOS 禁用频率缩放。我在机器上安装了 Windows 和 Ubuntu。CPU 没有过热,温度始终低于 50C。
在 Windows 中,CPU 频率固定为 3.2GHZ。但是当我启动 Linux 并检查时,/proc/cpuinfo
我得到的值到处都是。
root@ubuntu:~# cat /proc/cpuinfo |grep MHz
cpu MHz : 2483.111
cpu MHz : 2511.828
cpu MHz : 2142.128
cpu MHz : 1850.386
root@ubuntu:~#
Cpufreq 模块未加载
root@ubuntu:~# lsmod |grep cpufreq
root@ubuntu:~#
似乎没有与 CPU 频率调整相关的设置
root@ubuntu:~# ls -al /sys/devices/system/cpu/cpufreq
total 0
drwxr-xr-x 2 root root 0 Sep 16 18:37 .
drwxr-xr-x 13 root root 0 Sep 16 18:37 ..
root@ubuntu:~# find /sys/devices/system/cpu |grep freq
/sys/devices/system/cpu/cpufreq
root@ubuntu:~# find /sys/devices/system/cpu |grep min
root@ubuntu:~# find /sys/devices/system/cpu |grep max
/sys/devices/system/cpu/kernel_max
root@ubuntu:~#
答案1
现代处理器(我的专长是 Intel,而不是 AMD)在负载足够轻时会自行降低 CPU 频率,即使在性能模式下也是如此,并且取决于 CPU 进入的空闲状态深度。我建议您使用 acpi-cpufreq CPU 频率调整驱动程序,并设置性能模式。然后您应该对该处理器有最大的响应能力。
可能还有其他方法,但我所知道的唯一将所有处理器 CPU 绝对锁定在最大频率的方法是禁用任何深度大于 0 的空闲状态,注意空闲状态 0 根本不是真正的空闲,而是满载轮询状态。
示例(虽然不是特别相关,但我的 CPU 频率调节驱动程序是 intel_ptsate,调节器是“性能”):
doug@s15:~/test_kernels$ sudo turbostat --quiet --Summary --show Busy%,Bzy_MHz,IRQ,PkgTmp,PkgWatt --interval 5
Busy% Bzy_MHz IRQ PkgTmp PkgWatt
0.03 1749 283 47 4.04 <<< notice the low CPU frequency, even in performance mode. All Idle states are enabled.
0.02 1737 230 46 4.00
0.03 1920 552 45 4.07
0.02 1779 225 43 3.96
14.08 3498 5958 59 10.53
100.00 3500 40200 63 51.19 <<< Notice the high CPU frequency, but also high power consumption, and increasing package temperature.
100.00 3500 40189 64 51.67 <<< All idle states above 0 are disabled.
100.00 3500 40193 64 51.92 <<< turbostat sees idle state 0 as a "busy" state.
100.00 3500 40200 64 52.04
100.00 3500 40194 65 52.11
100.00 3500 40199 65 52.15
100.00 3500 40199 65 52.24
16.85 3497 7207 46 12.20
0.02 1777 230 45 3.98 <<< All idle states have been enabled again
0.02 1842 227 43 3.96
0.02 1833 224 42 3.94
0.02 1772 233 41 3.92
0.02 1769 249 40 3.91
0.03 1760 280 39 3.90
^C0.02 1922 77 39 3.88
注意:我的处理器是较旧的 i7,最小 pstate 为 16(1.6 GHz),最大 pstate(所有核心均处于活动状态)为 35(3.5 GHz)