Intel Coffee Lake Ubuntu Linux 速度太慢

這個也是怪自己,最近因為 Windows VM 不知道為什麼速度變很慢,所以改用 Linux 跑 VM ,雖然 Linux 下 VM 速度比 Windows 快,但是整體的感覺還是慢.本來以為是我的 i5-9600k VM 表現不好,但是看著 CPU utilization 感覺還是怪

先說結論,現在新的 CPU Linux 下預設會使用 pstate 做為主要的電源控制,而且會覆寫掉其他的設定,也包含 BIOS 的設定.而在我的 Ubuntu 系統下,pstate 預設是 powersave mode ,而且在 pstate 下只有 powersave 和 performance 兩個模式.

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors 
powersave performance
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 
powersave

理論上應該切 performance 模式效能就會回來,但是我們是愛好地球的好公民,當然是要用 ondemand 模式(謎之音,你怎麼知道 performance 不會變 ondemand mode 呢?答曰:是不知,懶得測)

要 disable Intel pstate 也很簡單,編輯 /etc/default/grub ,在GRUB_CMDLINE_LINUX_DEFAULT 加上

intel_pstate=disable

然後再執行

update-grub2

接下來重新開機就就可以了

開機完檢查目前的設定,ondemand ,正是我們要的,速度就變得飛快了,這才是正常的 Linux 速度

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors conservative ondemand userspace powersave performance schedutil
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 
ondemand

更新,因為看到 schedutil 的效能更好,所以也想要將預設的 governor 設定成 schedutil
在 ubuntu 下執行以下命令

sudo apt-get install cpufrequtils
echo 'GOVERNOR="schedutil"' | sudo tee /etc/default/cpufrequtils
sudo systemctl disable ondemand

重開機應該就可以了,如果不想重開機想要馬上更新,可以下

echo "schedutil" | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 

ref.
CPU frequency scaling
Set CPU governor to performance in 18.04
AMD Schedutil vs. Performance Governor Benchmarks On Linux 5.11 Shows More Upside Potential

後記,今天到公司連到我自己的 Dell Notebook ,發現也是同樣的狀況,直接試了一下改 performance 之後是不是像 ondemand 一樣的行為

governor = powersave

然後下指令改到 performance mode

# echo "performance" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
performance
governor = performance

下了二次察看都是 4G 的 Frequency ,而這一台 Notebook 沒有執行什麼特別的任務,所以 governor = performance 不是我要的結果

Intel pstate 我真是搞不懂你,我開始懷疑我 Windows 筆電慢也是因為 pstate 了

關掉 pstate 重開機預設就是 ondemand ,這個就是我們要的結果了,會隨系統負載修改時脈

governor = ondemand

On this day..

Comments

comments

Related Posts

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>