我有一个 AMD Ryzen 5 5625 U CPU,有 6 个物理核心和 12 个 SMP 核心。我正在运行 Zorin Core OS 16.2r-1。
我一直在测试如何在笔记本电脑上节省更多电量。最终,我希望能够停放空闲或低于用户可配置百分比负载的核心(机器以 400 MHz CPU 频率空闲,6 个核心处于 0%,6 个核心在 1% 和 0% 之间翻转)。
我在用着:
for i in $(seq $(getconf _NPROCESSORS_ONLN)); do yes > /dev/null & done
...对所有核心施加负载,然后我使用 powertop 和 powerstat 来测量消耗的功率。
我通过以下方式杀死它:
sudo killall yes
我注意到的一件事是,如果我这样做:
for x in /sys/devices/system/cpu/cpu{1..11}/online; do echo 0 >"$x"; done
...使除Core0之外的所有都脱机(Core0不能脱机),当使用yes加载CPU时,脱机的核心即使在yes被杀死后也不会卸载...核心保持在100%(如 Conky ${cpubar cpuX 10,115} 和 ${freq X} 和 ${cpu cpuX} 中所示,其中“X”是 CPU 编号),直到我通过以下方式将这些核心重新联机:
for x in /sys/devices/system/cpu/cpu{1..11}/online; do echo 1 >"$x"; done
这是 Conky 中的一个错误吗?当一个核心离线时,它无法更新该核心的状态;或者即使离线时内核实际上仍然保持负载? Powertop 和 PowerStat 无法告诉我,因为它们只测量在线核心。