為什麼tick_sched_timer在Linux上使用如此多的功率

為什麼tick_sched_timer在Linux上使用如此多的功率

根據我的 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 switchescpu-wakeups

如果您看到它使用大量電量,則可能是您系統上的某些內容導致大量context switches和/或cpu-wakeups. -- 這可能與驅動程式有關;例如 GPU 驅動程式、藍牙、wifi 等 - 它具有某種激進的更新間隔,或者驅動程式可能會觸發許多硬體中斷...但是,它也可能是由某些 userpsace 軟體引起的。也會使這些數字有點偏差。

您可以透過在不使用時停用驅動程式(例如藍牙)(或如果未使用,將其完全列入黑名單)來取得一些成功。或更改 cpu 調節器和/或使用各種節能方法/策略...根據核心的配置方式,減少計時器滴答也可以節省電力。例如,某些核心可能是使用 建構的CONFIG_HZ_1000=y,而其他核心可能是使用 建構的CONFIG_HZ_250=y。後者應該可以節省一些電力。

Powertop 可能會告訴您原因為何;但這tick_sched_timer並不是電池耗盡的根本原因(這只是一個症狀)。它可能是其他執行緒、任務或流程;在核心中或可能在用戶空間中。

答案2

聚會有點晚了,但透過調整我的設置,我的使用率從平均 2W 以上下降到 1 以下tlpui

轉到處理器並將 SCHED_POWERSAVE 選項勾選為開啟。您也可以對該類別中的許多 CPU 調整進行調整。

對於 Intel CPU:前往圖形並將 INTEL_GPU_FREQ 調整為較低的值,請務必事先檢查可用的值sudo tlp-stat -g

對於 AMD CPU:轉到圖形並將 RADEON_POWER_PROFILE_ON_BAT 和 RADEON_DPM_STATE 分別設定為低電量和電池電量。

禁用藍牙似乎也有幫助。

顯然,這並不理想,因為性能會降低很多,但如果您更重視電池壽命而不是性能,那麼就這樣做。

相關內容