私の 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 ドライバー、Bluetooth、Wi-Fi などのドライバーに関連している可能性があります。ドライバーの更新間隔がかなり長いか、ドライバーが多くのハードウェア割り込みを発生させている可能性があります... ただし、一部のユーザー スペース ソフトウェアによっても発生している可能性があります... powertop でもこれらの数値が多少歪むことがあります。
使用していないドライバー(Bluetooth など)を無効にする(または使用していない場合は完全にブラックリストに登録する)ことで、ある程度の効果があるかもしれません。または、CPU ガバナーを変更したり、さまざまな省電力方法/戦略を使用したりすることでも、ある程度の効果があるかもしれません。カーネルの構成によっては、タイマー ティックを減らすことでも電力を節約できる可能性があります。たとえば、一部のカーネルは でビルドされCONFIG_HZ_1000=y
、他のカーネルは でビルドされる可能性がありますCONFIG_HZ_250=y
。後者は電力をいくらか節約できるはずです。
Powertop は原因を示すかもしれませんが、それはtick_sched_timer
バッテリー消耗の根本的な原因ではありません (単なる症状です)。カーネル内またはユーザー空間内の他のスレッド、タスク、またはプロセスである可能性があります。
答え2
少し遅くなりましたが、 で設定を調整することで、使用量を平均 2W 以上から 1W 未満に減らすことができましたtlpui
。
プロセッサに移動し、SCHED_POWERSAVE オプションをオンにします。このカテゴリでは、さまざまな CPU 調整を試すこともできます。
Intel CPU の場合: グラフィックスに移動し、INTEL_GPU_FREQ を低い値に調整します。sudo tlp-stat -g
事前に使用して何が使用可能かを確認してください。
AMD CPU の場合: グラフィックスに移動し、RADEON_POWER_PROFILE_ON_BAT と RADEON_DPM_STATE をそれぞれ低とバッテリーに設定します。
Bluetoothを無効にすることも効果があるようです。
パフォーマンスがかなり低下するため、これは理想的ではありませんが、パフォーマンスよりもバッテリー寿命を重視する場合は、これを選択してください。