1. 程式人生 > >Linux系統下CPU頻率的調整

Linux系統下CPU頻率的調整

               

☆★省電or流暢[email protected]:/sys/devices/system/cpu/cpu0/cpufreq # cat scaling_available_governorshotplug conservative ondemand userspace powersave interactive performance

為了可以對幾種常見的CPU頻率調節模式有個基本的理解,下面簡單的總結了一下,根據不同方式的特點,自己來在效能與省電這兩對矛盾之間做個取捨,找出適合自己的平衡點吧!1、ondemand:系統預設的超頻模式,按需調節,核心提供的功能,不是很強大,但有效實現了動態頻率調節,平時以低速方式執行,當系統負載提高時候自動提高頻率。以這種模式執行不會因為降頻造成效能降低,同時也能節約電能和降低溫度。一般官方核心,還有

CM7的預設的方式都是ondemand。流暢度: 一般,流暢 2、interactive:互動模式,直接上最高頻率,然後看CPU負荷慢慢降低,比較耗電。  流暢度: 最高,極流暢 Interactive 是以 CPU 排程數量而調整頻率,從而實現省電。InteractiveX 是以 CPU 負載來調整 CPU 頻率,不會過度把頻率調低。所以比 Interactive 反應好些,但是省電的效果一般3、conservative:保守模式,類似於ondemand,但調整相對較緩,想省電就用他吧。Google官方核心,kang核心預設模式。流暢度: 高,流暢 4、smartass:聰明模式,是I和C模式的升級,該模式在比i模式不差的響應的前提下會做到了更加省電流暢度: 最高,流暢
5、performance:效能模式!只有最高頻率,從來不考慮消耗的電量,效能沒得說,但是耗電量.......流暢度:還需要說麼?還有比這種模式更流暢的嗎?6、powersave 省電模式,通常以最低頻率執行,打不死我也不用。流暢度: 極低 7、userspace:使用者自定義模式,系統將變頻策略的決策權交給了使用者態應用程式,並提供了相應的介面供使用者態應用程式調節CPU 執行頻率使用。也就是長期以來都在用的那個模式。可以通過手動編輯配置檔案進行配置流暢度:根據設定而定8、Hotplug:類似於ondemand, 但是cpu會在關屏下嘗試關掉一個cpu,並且帶有deep sleep,比較省電。
流暢度:一般,流暢
PS:設定裡(包括setcpu)的CPU頻率調節模式都有哪些,根據系統所用核心而定,上面所述的方式不一定都有!

前言

現在的CPU耗電很大,按需調節CPU頻率有對節能有重要的意義,目前多數Linux發行版都已經預設啟用了這個功能,但是Debian 4.0和Archlinux還沒有,需要經過簡單的設定才行。,

Debian 4.0和Archlinux的核心已經編譯了調節CPU頻率的模組,但是預設沒有啟用,所以要做就是啟用相關的模組,並安裝CPU頻率調節程式(可選)。

選擇並啟用與CPU相對應的核心模組

為確保接下來的工作是有意義的,首先確保您的CPU頻率調節功能還沒有啟用~

# cd /sys/devices/system/cpu/cpu0# ls -l

如果你看到一個名為cpufreq的資料夾,則說明頻率調節功能已經啟用,您可以直接跳至下一步。

如果沒有看到名為cpufreq的資料夾,則先看一下可以用的驅動:

# ls /lib/modules/`uname -r`/kernel/arch/*/kernel/cpu/cpufreq

在我的電腦看到的是這樣的,估計你的也差不多。

acpi-cpufreq.ko longrun.ko powernow-k8.ko speedstep-smi.kocpufreq-nforce2.ko p4-clockmod.ko speedstep-centrino.kogx-suspmod.ko powernow-k6.ko speedstep-ich.kolonghaul.ko powernow-k7.ko speedstep-lib.ko

這些都是可選的驅動,但是與不同的CPU相匹配。 常用的是:

p4-clockmod.ko Intel P4的處理器 speed-centrino.ko 迅弛,很多筆記本都是這個 powernow-k*.ko AMD處理器用的 acpi-cpufreq.ko 如果所有的都行,試試這個,(但2.6.20或以上的核心推薦優先使用該項)

上表列出的只是常用的,如果不行,試一下其它的。

試的方法是:

1. 載入該核心模組,如

#modprobe p4-clockmod

又如

#modprobe powernow-k8

注意是模組名是把上面的檔名去掉.ko。

2. 如果沒有錯誤資訊,就對了。如果要確認,看一下

# cd /sys/devices/system/cpu/cpu0# ls -l

是否有cpufreq。

提示: 可以用cat看一下cpufreq資料夾下的檔案,可以得到一些有用的資訊 選擇適當的調節器

調節器即Governor,用它來控制CPU頻率。可選的有

核心模組 調節器名稱 功能 cpufreq_ondemand ondemand 按需調節,核心提供的功能,不是很強大,但有效實現了動態頻率調節 cpufreq_powersave powersave 省電模式,通常以最低頻率執行, cpufreq_userspace userspace 使用者模式,一些調頻工具軟體需要在此模式下才能執行 cpufreq_conservative conservative “保守”模式,類似於ondemand,但調整相對較緩 N/A performance 不降頻

檢視當前的調節器:

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

更改使用的調節器,需要載入相應的核心模組,再更改scaling_governor檔案,例如:

# modprobe cpufreq_conservative# echo conservative > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor注意:如果使用的CPU比較老,使用speedstep-smi做為動態頻率的模組,則不能使用ondemand等實時調頻軟體,原因是其調頻延時較長。

當然也可以用GNOME的工具來調節,請參見後面的介紹。

使用軟體管理CPU頻率

核心模組的CPU頻率管理功能已經很強大了,當然你也可以應用軟體來管理,可選的軟體有:

  1. cpudynd
  2. cpufreqd
  3. cpufrequtils
  4. powernowd
  5. powersaved
  6. speedfreqd

這些源裡是有的,不過我認為都不怎麼好用,感覺Fedora的cpuspeed比較好,不過源裡沒有。

使用gnome的CPU頻率範圍監視器

在gnome的面板上按右鍵,選擇“新增到面板”,加入“CPU頻率範圍監視器”。 在那個圖示上按右鍵,“首選項”,可以選擇顯示和調速的方式。 普通使用者預設不能調節CPU頻率,要解決這個問題,請參閱為普通使用者提供CPU調頻許可權

設定開機自動載入以上設定Debian 4.0

1. 編輯 /etc/modules ,加入剛才modprobe掛載的核心模組

cpufreq-userspacecpufreq-ondemandcpufreq-powersavecpufreq-conservativespeedstep-centrino #請修改為相應的頻率調節模組

2. 安裝sysfsutils,

#apt-get install sysfsutils

以超級使用者許可權編輯/etc/sysfs.conf,檔案內容:

devices/system/cpu/cpu0/cpufreq/scaling_governor = ondemanddevices/system/cpu/cpu0/cpufreq/scaling_max_freq = 1800000 #請修改為您的CPU的最高頻率

如果是雙核CPU,還應加入cpu1的內容,與cpu0完全類似。多執行緒CPU無需進行此項操作。

Archlinux
  • 在/etc/rc.conf的MODULES變數中加入剛才modeprobe掛載的核心模組
cpufreq-userspacecpufreq-ondemandcpufreq-powersavecpufreq-conservativespeedstep-centrino #請修改為相應的頻率調節模組
  • 可以安裝cpudyn和acpid,並
# /etc/rc.d/cpudyn start# /etc/rc.d/acpid start

啟動自動調節,也可以把它們加到rc.conf中,讓其自動啟動。