3.2. 使用 CPUfreq 調速程式

降低電力消耗量與熱能輸出的最有效方法,是在系統上使用 CPUfreq。CPUfreq 也被稱為 CPU 速度調節,能動態調整處理器的時脈速度。這能讓系統以較低的時脈運作,以節省電力。變化頻率(不管是把時脈速度變快或變慢)的規則,以及何時變化頻率,都由 CPUfreq 調速程式(governor)來定義。
調速程式會定義系統 CPU 的電力特性,進而影響 CPU 的效能。對負載來說,每個調速程式都有其獨特的行為、目的、與適用性。本節描述了如何選擇與配置 CPUfreq 調速程式、各種調速程式的特性、以及每種調速程式適用於哪些負載。

3.2.1. CPUfreq 調速程式的類型

本節列出並描述了 Red Hat Enterprise Linux 6 的 CPUfreq 調速程式類型
cpufreq_performance

這個 Performance(效能)調速程式會強迫 CPU 使用最高的時脈頻率運作。這個頻率會以靜態方式設定,而且不會改變。因此,這個特定的調速程式「不會提供任何省電功能」。這只適用於高工作負載時段,在這期間 CPU 鮮有(或從沒有)閒置的時候。

cpufreq_powersave

相反地,Powersave(省電)調速程式會強迫 CPU 使用最低的時脈頻率運作。這頻率會以靜態方式設定,而且不會改變。因此,這個調速程式會以最節省電力的方式運作,但會導致「最低的 CPU 效能」。

但「Powersave」這個名詞有時候會引起混淆,因為基本上,較慢的 CPU 在滿載的情況下,會比快速而不滿載的 CPU 耗電。因此,如果您預期某段時間內 CPU 的負荷應該不會太重,就可以將 CPU 設在 Powersave 調速程式;但這段時間內的無預期高負載就可能導致系統消耗更多電力。
簡單來說,Powersave 調速程式是 CPU 的「限制速度程式」,而不是「節省電力程式」。它在可能會過熱的系統與環境中,非常有用。
cpufreq_ondemand

Ondemand(視需要)調速程式能在系統負載高的時候,使用 CPU 的最高時脈運行;並在系統閒置時,使用最低的時脈頻率。這讓系統根據系統負載,動態調整電力消耗;但代價是「切換時脈時會導致延遲」。因此,如果負載的變動太過頻繁,Ondemand 調速程式會因為切換時脈的次數過多,而降低 Performace 或 Powersave 所帶來的好處。

對於大部分系統來說,Ondemand 調速程式可以達到熱能、電力、效能、與管理的最佳平衡。當系統只在一天的某個時段忙碌的情形下,Ondemand 調速程式會根據負載,自動在最高與最低頻率之間切換,而不需要進一步干預。
cpufreq_userspace

Userspace 調速程式能讓 userspace(使用者空間)的程式(或任何以 root 身份執行的程序)來設定頻率。此調速程式通常會與 cpuspeed daemon 一起使用。在所有調速程式中,Userspace 是最高度客製化的;而且根據配置方式,它可以提供效能與電力消耗的最佳平衡。

cpufreq_conservative

跟 Ondemand 調速程式類似,Conservative(保守)調速程式也可以根據使用量調整時脈頻率。然而,Ondemand 會以更積極的方式來進行(最高頻率或最低頻率二選一);而 Conservation 調速程式會以漸進方式調整頻率。

這表示 Conservative 調速程式會調整到適合負載的時脈頻率,而不是選擇最高頻率或最低頻率。雖然這可能可以省下可觀的電力,但與 Ondemand 調速程式比起來,「延遲情況會更嚴重」。

注意

您可以使用 cron job 來啟動調速程式。這能讓您在每日的特定時間,自動設定不同的調速程式。因此,您可以在閒置時段(例如下班後)使用低頻率的調速程式,並在高負載時調回高頻率的調速程式。
欲知啟用調速程式的方法,請參閱 節 3.2.2, “設定 CPUfreq”過程 3.2, “啟用 CPUfreq 調速程式”