TOC
様々な設定ができる省電力設定ツール
LinuxではCPUクロックを制御するcpufreqという仕組みで消費電力を抑えることができますが、イマドキはTLPを使うそうなので導入してみます。
TLPの日本語のまとまった説明としてはArch LinuxのWikiが大変参考になります。
なお、確認はGalliumOS3.0で行っています。
インストール
# apt-get install tlp
現在の設定値を確認
# tlp stat
--- TLP 1.1 --------------------------------------------
+++ Configured Settings: /etc/default/tlp
TLP_ENABLE=1
TLP_DEFAULT_MODE=AC
TLP_PERSISTENT_DEFAULT=0
DISK_IDLE_SECS_ON_AC=0
(略)
起動時有効化設定
# systemctl enable tlp
諸処の設定
設定ファイルは/etc/default/tlpで、ここに必要な設定を追記します。
btrfsを使っている場合はSATA_LINKPWR_ON_BATをmax_performanceにする。
SATA_LINKPWR_ON_BAT=max_performance
参考
CPUガバナーを設定
AC接続時にパフォーマンス、バッテリー接続時は負荷に応じる設定
CPU_SCALING_GOVERNOR_ON_AC=perfomance
CPU_SCALING_GOVERNOR_ON_BAT=ondemand
一般に他にcpufreqとして使われるガバナーのprofileとしてはconservative
(保守的)、powersave
(最小クロックで固定)あたりでしょうか。
Turbo Boostを設定(kernel3.7以降)
AC接続時に有効、バッテリー接続時に無効
CPU_BOOST_ON_AC=1
CPU_BOOST_ON_BAT=0
とりあえずこういう差分になりました。
--- /etc/default/tlp.org 2018-07-25 11:00:47.000000000 +0900
+++ /etc/default/tlp 2019-10-25 08:43:12.667501498 +0900
@@ -41,8 +41,8 @@
# distributions have chosen them as defaults. If you still want to change,
# you should know what you're doing! You *must* disable your distribution's
# governor settings or conflicts will occur.
-#CPU_SCALING_GOVERNOR_ON_AC=powersave
-#CPU_SCALING_GOVERNOR_ON_BAT=powersave
+CPU_SCALING_GOVERNOR_ON_AC=perfomance
+CPU_SCALING_GOVERNOR_ON_BAT=ondemand
# Set the min/max frequency available for the scaling governor.
# Possible values strongly depend on your CPU. For available frequencies see
@@ -73,8 +73,8 @@
# Important:
# - This may conflict with your distribution's governor settings
# - A value of 1 does *not* activate boosting, it just allows it
-#CPU_BOOST_ON_AC=1
-#CPU_BOOST_ON_BAT=0
+CPU_BOOST_ON_AC=1
+CPU_BOOST_ON_BAT=0
# Minimize number of used CPU cores/hyper-threads under light load conditions:
# 0=disable, 1=enable.
ガリガリチューニングすべき?
私の場合は大雑把に省電力設定を適用したかったのでかなり設定項目が少ないですが、他にもコア数を絞る/ハイパースレッディングを無効にするSCHED_POWERSAVE_ON_AC/SCHED_POWERSAVE_ON_BATもありますが、これらは元々性能向上のための機能であり、イマドキのCPUであれば無意味に電力消費をするとも思えません。
また、負荷が高い場合はリソースをガンガン投入して短時間で処理を終わらせるべきと個人的には思うので、このくらいでどうでしょうか。
ちなみにこの設定項目でpowertopを実行すると概ね7.5W程度のバッテリー消費になっています。
powertopで突き詰める
ガリガリやる場合によく使われるpowertopをインストールします。
# apt-get install powertop
おもむろにpowertopをroot権限で実行します。デフォルトではOverviewにフォーカスが当たっているので、tabキーでTunableに移動します。
割とスパルタな感じで思い通りの値になっていないとBad判定されます。
>> Bad Enable SATA link power management for host0
Bad Enable SATA link power management for host1
Bad Enable Audio codec power management
Bad Runtime PM for I2C Adapter i2c-5 (i915 gmbus dpc)
Bad Runtime PM for I2C Adapter i2c-7 (i915 gmbus dpd)
Bad Runtime PM for I2C Adapter i2c-2 (i915 gmbus ssc)
Bad Runtime PM for I2C Adapter i2c-4 (i915 gmbus panel)
Bad Autosuspend for unknown USB device 2-4 (0489:e056)
Bad Runtime PM for I2C Adapter i2c-6 (i915 gmbus dpb)
Bad Runtime PM for I2C Adapter i2c-3 (i915 gmbus vga)
Bad Runtime PM for PCI Device Intel Corporation 8 Series USB EHCI #1
Bad Runtime PM for PCI Device Intel Corporation Haswell-ULT DRAM Contr
Bad Runtime PM for PCI Device Intel Corporation Haswell-ULT HD Audio C
Bad Runtime PM for PCI Device Intel Corporation 8 Series Thermal
Bad Runtime PM for PCI Device Intel Corporation 8 Series USB xHCI HC
Bad Runtime PM for PCI Device Intel Corporation 8 Series Low Power Sub
Bad Runtime PM for PCI Device Intel Corporation 8 Series HD Audio Cont
Bad Runtime PM for PCI Device Intel Corporation 8 Series LPC Controlle
Bad Runtime PM for PCI Device Intel Corporation 8 Series SATA Controll
Bad Runtime PM for PCI Device Intel Corporation Haswell-ULT Integrated
Bad Runtime PM for PCI Device Qualcomm Atheros AR9462 Wireless Network
Bad Runtime PM for PCI Device Intel Corporation 8 Series SMBus Control
Good VM writeback timeout
Good Bluetooth device interface status
Good NMI watchdog should be turned off
Good Autosuspend for USB device xHCI Host Controller [usb2]
Good Runtime PM for I2C Adapter i2c-0 (Synopsys DesignWare I2C adapter)
Good Runtime PM for I2C Adapter i2c-1 (Synopsys DesignWare I2C adapter)
Good I2C Device 0-0067 has no runtime power management
Good Autosuspend for USB device xHCI Host Controller [usb3]
Good Autosuspend for USB device HD WebCam [Chicony Electronics Co.,Ltd.
Good Runtime PM for PCI Device Intel Corporation 8 Series I2C Controlle
Good Runtime PM for PCI Device Intel Corporation 8 Series I2C Controlle
Good Runtime PM for PCI Device Intel Corporation 8 Series PCI Express R
Good Wake-on-lan status for device wlp1s0
Good Wake-on-lan status for device br-558db79c23b9
Good Wake-on-lan status for device docker0
めちゃめちゃBad言われてる…
ここで選択されている項目上でEnterを押すと、
>> echo 'min_power' > '/sys/class/scsi_host/host0/link_power_management_policy';
>> Good Enable SATA link power management for host0
となり、sysfsの設定を書き換えたっぽいことがわかります。こんな感じでBadをGoodに変えていくと…
The battery reports a discharge rate of 5.59 W
The power consumed was 102 J
ということで2Wくらい更に減りました。
ただ、消費電力が少ないに越したことはないですがここまでやる必要があるかといわれるとちょっと…というのが実感です。突き詰めたい方にはオススメできます。
comments powered by Disqus