LaptopのCPU設定をtlpで変更して温度を下げる

最近暑いのもありPCがシャットダウンしてしまうことが多いです.
シャットダウンしていてログを見ると

kernel: thermal thermal_zone0: acpitz: critical temperature reached
kernel: reboot: HARDWARE PROTECTION shutdown (Temperature too high)

が残されている感じ.
tlpでCPUの設定を変更してみました.

このcritical temperatureはこの端末では100℃のようです.
通常時の温度は75度くらい.

$ sensors | grep coretemp-isa-0000 -A7
coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +52.0���C  (high = +100.0���C, crit = +100.0���C)
Core 0:        +50.0���C  (high = +100.0���C, crit = +100.0���C)
Core 1:        +52.0���C  (high = +100.0���C, crit = +100.0���C)
Core 2:        +52.0���C  (high = +100.0���C, crit = +100.0���C)
Core 3:        +49.0���C  (high = +100.0���C, crit = +100.0���C)

ということでいまこの端末ではtlpを導入しているのでtlpのcpuの設定を変えて見ようと思います.
設定ファイルは /etc/tlp.conf

CPU_SCALING_GOVERNOR_ON_AC/BAT/SAV

先ずは CPU_SCALING_GOVERNOR_ON_AC/BAT/SAV を設定.既定値は performance になっていそうです.
設定可能な項目は環境によって変わるので, tlp-stat -p などで確認します.この端末だと performance, powersave が設定できそうなので powersave に.

設定可能なscaling governor設定項目を確認
$ sudo tlp-stat -p | grep scaling_available_governors
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors = performance powersave
tlp.confを修正
-#CPU_SCALING_GOVERNOR_ON_AC=performance
-#CPU_SCALING_GOVERNOR_ON_BAT=powersave
-#CPU_SCALING_GOVERNOR_ON_SAV=powersave
+CPU_SCALING_GOVERNOR_ON_AC=powersave
+CPU_SCALING_GOVERNOR_ON_BAT=powersave
+CPU_SCALING_GOVERNOR_ON_SAV=powersave

設定変更したらtmpを再起動します. sudo service tlp restart
少し下がった気がするけどしばらく使っているとまたおこりました.

CPU_ENERGY_PERF_POLICY_ON_AC/BAT/SAV

次は CPU_ENERGY_PERF_POLICY_ON_AC/BAT/SAV を設定してみます.
こちらは power が一番低いようなので balance_performance から power へ変更.

設定可能なcpu energy performance設定項目を確認
$ sudo tlp-stat -p | grep energy_performance_available_preferences
/sys/devices/system/cpu/cpu0/cpufreq/energy_performance_available_preferences = default performance balance_performance balance_power power
tlp.confを修正
-#CPU_ENERGY_PERF_POLICY_ON_AC=balance_performance
-#CPU_ENERGY_PERF_POLICY_ON_BAT=balance_power
-#CPU_ENERGY_PERF_POLICY_ON_SAV=power
+CPU_ENERGY_PERF_POLICY_ON_AC=power
+CPU_ENERGY_PERF_POLICY_ON_BAT=power
+CPU_ENERGY_PERF_POLICY_ON_SAV=power

設定変更したらtmpを再起動します. sudo service tlp restart
少し下がった気がするけどしばらく使っているとまたおこりました.

CPU_BOOST_ON_AC/BAT/SAV

次に CPU_BOOST_ON_AC/BAT/SAV を設定してみます.
これはCPUのturbo boostを有効/無効にする設定のようで,設定項目は 0(off)/1(on) のみのようです.

tlp.confを修正
-#CPU_BOOST_ON_AC=1
-#CPU_BOOST_ON_BAT=1
-#CPU_BOOST_ON_SAV=0
+CPU_BOOST_ON_AC=0
+CPU_BOOST_ON_BAT=0
+CPU_BOOST_ON_SAV=0

設定変更したらtmpを再起動します. sudo service tlp restart

この設定が一番効いたようで一気に温度が下がりました.上2つでは数度ずつしか下がりませんでしたが,この設定で一気に20度近く下がり,現在51℃.
ただ,PCがもたつくことが増えました.

この時点でのtlp-stat -p
$ sudo tlp-stat -p
--- TLP 1.10.2 --------------------------------------------

+++ Processor
CPU model = Intel(R) Core(TM) i7-10510U CPU @ 1.80GHz

/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver    = intel_pstate
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor  = powersave
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors = performance powersave
/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq  =   400000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq  =  1800000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq  =   400000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq  =  1800000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference = power [EPP]
/sys/devices/system/cpu/cpu0/cpufreq/energy_performance_available_preferences = default performance balance_performance balance_power power

/sys/devices/system/cpu/cpu1..cpu7: omitted for clarity, use -v to show all

/sys/devices/system/cpu/intel_pstate/status            = active
/sys/devices/system/cpu/intel_pstate/min_perf_pct      =   8 [%]
/sys/devices/system/cpu/intel_pstate/max_perf_pct      = 100 [%]
/sys/devices/system/cpu/intel_pstate/no_turbo          =   1
/sys/devices/system/cpu/intel_pstate/hwp_dynamic_boost =   0
/sys/devices/system/cpu/intel_pstate/turbo_pct         =  68 [%]
/sys/devices/system/cpu/intel_pstate/num_pstates       =  46
/sys/module/workqueue/parameters/power_efficient       = N
/proc/sys/kernel/nmi_watchdog                          = 0

+++ Platform
/sys/firmware/acpi/platform_profile                    = performance
/sys/firmware/acpi/platform_profile_choices            = low-power balanced performance
/sys/devices/platform/thinkpad_acpi/dytc_lapmode       = 0

涼しくなってきたら設定を戻しましょう.

それと去年は問題なかったので経年劣化で熱伝導グリスが乾いてきているのかもしれません.億劫ですがヒートシンクにグリスを塗り直すと良くなる気もします.

環境

$ dpkg -l | grep tlp
ii  tlp                                                 1.10.2-2                                        all          Optimize laptop battery life
ii  tlp-pd                                              1.10.2-2                                        all          Switch Power Profiles from the Desktop
ii  tlp-rdw                                             1.10.2-2                                        all          Switch Wi-Fi and Bluetooth on/off automatically
$ lsb_release -dr
Description:    Debian GNU/Linux forky/sid
Release:        n/a
$ arch
x86_64

One thought to “LaptopのCPU設定をtlpで変更して温度を下げる”

  1. その後
    以下の2箇所を戻して少しもたつきが減らせた?
    温度は数度上がった
    でも55->57とか

    -CPU_SCALING_GOVERNOR_ON_AC=powersave
    +CPU_SCALING_GOVERNOR_ON_AC=performance

    -CPU_ENERGY_PERF_POLICY_ON_AC=power
    +CPU_ENERGY_PERF_POLICY_ON_AC=balance_performance

    turbo boost のoff だけですごい変わるのですね

Reposts

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

To respond on your own website, enter the URL of your response which should contain a link to this post's permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post's URL again. (Find out more about Webmentions.)