隨機手札 雜七雜八之地

在Fedora 38中關閉Intel Turbo Boost

6 minLinux心得
#fedora #intel turbo boost

Macbook Air 2013 上 安裝 Fedora後,發現會有容易過熱的問題(溫度直上 90°C 甚至 100 °C),找到了一個解決方式是直接關閉 Intel Turbo Boost。因為過程稍微複雜一些,所以就把他紀錄下來了。


什麼是 Intel Turbo Boost

簡單說呢,就是讓處理器在沒事做的時候維持低頻率,有事做的時候變為高頻率但卻又不超過安全值。

因為 CPU 頻率決定了特定時間內能夠吞吐的工作量,CPU 工作時的頻率越高,發熱量也越大,所以網路上就會出現關閉 Intel Turbo Boost 讓 CPU 不論有沒有事做都維持在基本頻率,以降低消耗電量以及發熱度的作法,雖然通常是在筆電上設定,但若想要桌機不要那麼熱情(?),也是可以設定的。

關於 Intel Turbo Boost 可參考 官方說明

關閉的方式

在我所查到的資料裡, Fedora 38 中有兩種關閉 Intel Turbo Boost 的方式。一個是透過別人寫的 GNOME 擴充套件,一個則是直接修改設定值並把他設定成開機時自動關閉。

自己比較喜歡後者,因為前者須依靠別人更新的 GNOME 擴充套件,在迭代速度較快的 Fedora 中,常常升上新版本之後 GNOME 也會跟著升級,然後導致比較少見的擴充套件掛掉。但前者設定相對容易也不需要輸入什麼指令,大家可以自己挑自己喜歡的。


透過 GNOME 擴充套件關閉

第一個方式就是透過cpufreq這個擴充套件來完成,這個套件甚至可以調整 CPU 的最低/最高頻率以及可使用的 CPU 核心數量。

但這個套件不在 Fedora 官方套件庫內,要從GNOMe Extensions 網站自行安裝。安裝後在頂端列將「Turbo Boost」這個選項關閉就可以了。


透過修改系統設定值關閉

第二個方式就是我採用的方式了,自行修改設定值並設定為開機時自動開啟。首先建立一個 system service 檔案,可使用自己喜歡的文字編輯器:

# 建立一個system service
sudo gnome-text-editor /etc/systemd/system/disable-intel-turboboost.service

接著貼上如下的內容:

disable-intel-turboboost.service
[Unit]
Description=Disable Intel Turbo Boost using pstate driver

[Service]
ExecStart=/bin/sh -c "/usr/bin/echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo"
ExecStop=/bin/sh -c "/usr/bin/echo 0 > /sys/devices/system/cpu/intel_pstate/no_turbo"
RemainAfterExit=yes

[Install]
WantedBy=sysinit.target

關於 system service 檔案的詳細說明,可參考 Fedora 官方文件。

最後啟用這個我們自己寫的服務,就完成囉。

sudo systemctl daemon-reload
sudo systemctl enable disable-intel-turboboost
sudo systemctl start disable-intel-turboboost
sudo systemctl status disable-intel-turboboost

如果想要恢復使用,可以用下面兩個指令。

# 永久性恢復使用Turbo Boost
sudo systemctl disable disable-intel-turboboost
# 暫時恢復使用Turbo Boost(重開後仍停用)
sudo systemctl stop disable-intel-turboboost

檢驗

其實也說不上是「檢驗」,就是做一些會讓電腦很忙的事情,比如說開一些很複雜的網站啊、工程師編譯一些專案啊……之類的,然後去感受一下溫度、使用可以看到溫度的 GNOME 擴充套件(例如Freon)或是直接看系統監控程式。

以我的i5-8250U來說,原本最高可以跑到 3.40 GHz,關掉 turbo 會直接剩 1.60 GHz,將近一半的效能損失想必是非常明顯的。

若想更精確地確認,也可以使用這個指令:

lscpu | grep "MHz"

然後看輸出的CPU(s) scaling MHz項目,這可以解讀為 CPU 目前輸出的頻率佔最大輸出的比例,像我的就會被鎖在 1.6 / 3.4 ≒ 47%就上不去。

CPU(s) scaling MHz: 47%
CPU max MHz:        3400.0000
CPU min MHz:        400.0000

後記

這種作法是用效率去交換發熱降低以及省電,若不是像我使用 2013 年的 Macbook Air 這種特殊情境或是真的比較老的裝置上,應該是都用不太到,但了解了一些事情的感覺還是不錯啦。希望這個作法可以讓那台 MBA 活久一點,環保嘛~不過物盡其用而已。


參考文獻

  1. How To: Disable Intel Turbo Boost on Linux using systemd + intel_pstate

Support me on Ko-fi
相關文章

Fedora初始設定紀錄

本篇是將自己重灌 Fedora 時會做的一些事情,例如:移除沒在用的 Gnome 預設程式、安裝自己要用的程式、更新……等等的過程,以指令碼的形式紀錄下來,以求下次重灌完可以直接複製貼上執行之後就會最接近自己平常的使用狀態。

3 min

使用Fedora刷Pixel 3a的LineageOS 過程紀錄

總之呢,官方公佈不保證在 5 月之後還會收到更新,而網路則說 7 月會迎來最後一次更新,因為手機狀況都還滿健康的,最愛保留舊手機舊電腦的我,就想說要來刷機了。

13 min

使用WoeUSB在Fedora中製作Windows安裝USB

雖然脫離 Windows 很久,但有時候還是會需要幫朋友重灌電腦什麼的,所以就研究了一下如何在 Fedora 裡面製作 Windows 的安裝媒體。後來在網路上找到WoeUSB這個套件。

4 min