根据我的 powertop (在 5.3.1 内核上):
Power est. Usage Events/s Category Description
...
3.85 W 7,7 ms/s 437,0 Timer tick_sched_timer
笔记本电脑上的 3.85W 是巨大的,有时甚至高达 6W。我在早期的内核(5.0.x)上没有看到过这种情况,有人知道如何减少功耗吗?
答案1
tick_sched_timer
是 Linux 内核的 CPU 调度程序的一部分。在这种情况下,它很可能表示您的系统上有许多context switches
和。cpu-wakeups
如果您发现它消耗了大量电量,那么很可能是系统上的某些东西导致了大量context switches
和/或cpu-wakeups
。——这可能与驱动程序有关;例如 gpu 驱动程序、蓝牙、wifi 等 - 它具有某种激进的更新间隔,或者可能是驱动程序正在触发许多硬件中断...但是,这也可能是由某些用户界面软件引起的......即使 powertop 也会稍微歪曲这些数字。
通过在不使用时禁用驱动程序(如蓝牙)(或如果未使用,则将其完全列入黑名单)或更改 CPU 调节器和/或使用各种省电方法/策略,您可能会获得一些成功...根据内核的配置方式,减少计时器滴答也可能节省电量。例如,某些内核可能使用 构建CONFIG_HZ_1000=y
,而其他内核可能使用 构建CONFIG_HZ_250=y
。后者应该可以节省一些电量。
Powertop 可能会向您提供原因提示;但这tick_sched_timer
不是电池耗尽的根本原因(这只是一个症状)。很可能是内核中或用户空间中的其他线程、任务或进程。
答案2
虽然有点晚了,但是通过调整设置,我将使用量从平均 2W 以上降低到了 1W 以下tlpui
。
转到“处理器”并将 SCHED_POWERSAVE 选项勾选为开启。您还可以调整该类别中的许多 CPU 调整。
对于英特尔 CPU:转到图形并将 INTEL_GPU_FREQ 调整为较低的值,请务必事先检查可用的值sudo tlp-stat -g
。
对于 AMD CPU:转到图形并将 RADEON_POWER_PROFILE_ON_BAT 和 RADEON_DPM_STATE 分别设置为低和电池。
禁用蓝牙似乎也有帮助。
显然这并不理想,因为性能降低了不少,但如果您更看重电池寿命而不是性能,那么就选择这个。