成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

減少Linux耗電:一般設置和與調控器相關的設置

運維 系統運維
我們先來介紹 Linux CPUfreq 子系統的使用設置并提供一些接口選項,看看使用它是多么容易。先討論一些一般設置......

CPUfreq 的一般設置

我們先來介紹 Linux CPUfreq 子系統的使用設置并提供一些接口選項,看看使用它是多么容易。先討論一些一般設置:

/sys 接口

cpuspeed 設置文件

cpufreq-utils

使用 /sys 接口

/sys 文件系統為 CPUfreq 提供用戶接口,起點是 /sys/devices/system/cpu/。其中一些文件是可寫的(由根用戶寫),其他文件是只讀的。

首先,看看 /sys/devices/system/cpu/。在這里會找到每個邏輯 CPU 的目錄和 sched_mc_power_savings 可調項,如果在系統上可用的話,還會找到 sched_smt_power_savings 可調項(稍后討論)。

清單 1. 檢查 /sys/devices/system/cpu/ 的內容

[root@systemx ~]# cd /sys/devices/system/cpu/

[root@systemx cpu]# ls

cpu0 cpu1 cpu2 cpu3 cpu4 cpu5 cpu6 cpu7 sched_mc_power_savings

在每個處理器的目錄內是一個 cpufreq 目錄,它包含 CPUfreq 接口:

清單 2. 檢查 cpufreq 目錄

[root@systemx cpu]# cd cpu0/cpufreq/

[root@systemx cpufreq]# ls -l

total 0

-r--r--r-- 1 root root 4096 Oct 31 14:53 affected_cpus

-r-------- 1 root root 4096 Oct 31 14:53 cpuinfo_cur_freq

-r--r--r-- 1 root root 4096 Oct 31 14:53 cpuinfo_max_freq

-r--r--r-- 1 root root 4096 Oct 31 14:53 cpuinfo_min_freq

-r--r--r-- 1 root root 4096 Oct 31 14:53 scaling_available_frequencies

-r--r--r-- 1 root root 4096 Oct 31 14:53 scaling_available_governors

-r--r--r-- 1 root root 4096 Oct 31 14:53 scaling_cur_freq

-r--r--r-- 1 root root 4096 Oct 31 14:53 scaling_driver

-rw-r--r-- 1 root root 0 Nov 5 11:44 scaling_governor

-rw-r--r-- 1 root root 4096 Oct 31 14:53 scaling_max_freq

-rw-r--r-- 1 root root 4096 Oct 31 14:53 scaling_min_freq

加入 My developerWorks 上的綠色組

在 GReen IT Report space 和 My developerWorks 上的 Green computing group 討論與能源、效率和環境相關的主題并分享參考資料。

如果調控器設置為 conservative 或 ondemand,還會在這里看到與調控器同名的目錄。我們稍后討論如何改變調控器。

對于每個調控器,都可以使用這些文件。我們將討論每個設置的意義以及如何修改它們;然后討論這個接口之外與調控器相關的一些設置。注意,對于每個處理器,cpufreq 目錄下的設置可以不一樣,因此要想跨處理器應用一致的策略,就必須按照后面的說明修改每個處理器的設置值。

首先,affected_cpus 顯示修改頻率會影響哪些處理器。由于硬件和/或軟件的關聯,一些處理器的頻率是相互依賴的,必須同時修改頻率。例如,可能會看到這種設置:

清單 3. 檢查修改頻率會影響哪些處理器

[root@systemx ~]# cd /sys/devices/system/cpu

[root@systemx cpu]# grep . cpu*/cpufreq/affected_cpus

cpu0/cpufreq/affected_cpus:0 1

cpu1/cpufreq/affected_cpus:0 1

cpu2/cpufreq/affected_cpus:2 3

cpu3/cpufreq/affected_cpus:2 3

接下來,cpuinfo_cur_freq 顯示處理器當前的運行頻率。scaling_cur_freq 文件列出調控器當前使用的擴展頻率。

清單 4. 檢查頻率

[root@systemx cpufreq]# cat cpuinfo_cur_freq

2997000

[root@systemx cpufreq]# cat scaling_cur_freq

2997000

這個接口中列出的所有頻率都以 KHz 為單位。

下面一些文件提供可用處理器頻率的相關信息。cpuinfo_max_freq 和 cpuinfo_min_freq 文件包含系統可用的***和最小頻率;scaling_available_frequencies 顯示所有可用頻率。

#p#

清單 5. 檢查***、最小和可用頻率

[root@systemx cpufreq]# cat cpuinfo_max_freq

2997000

[root@systemx cpufreq]# cat cpuinfo_min_freq

1998000

[root@systemx cpufreq]# cat scaling_available_frequencies

2997000 2664000 2331000 1998000

scaling_available_governors 文件列出可用的所有調控器。如果沒有看到全部五個調控器,要檢查在配置文件中是否啟用了所有調控器并確保按第 1 部分中的說明裝載了調控器的模塊。

清單 6. 檢查可用的調控器

[root@systemx cpufreq]# cat scaling_available_governors

ondemand powersave conservative userspace performance

scaling_driver 文件說明系統正在運行哪個 cpufreq 驅動程序。典型的驅動程序包括 acpi、speedstep-smi、speedstep-centrino、powernor_k8、powernow_k7、longhaul 等。如果希望改變驅動程序,需要先卸載正在使用的驅動程序,然后再裝載另一個驅動程序。另外,在使用之前,一定要檢查驅動程序是否適用于您的處理器。

清單 7. 檢查系統正在運行哪個 cpufreq 驅動程序

[root@systemx cpufreq]# cat scaling_driver

centrino

這個目錄中的其他文件可以由根用戶寫,可以通過它們修改一些 cpufreq 設置。這些文件只包含允許用戶修改的 powersave 和 performance 調控器設置。其他調控器有更多設置可用,我們在下一節中討論。

首先,scaling_governor 文件顯示當前啟用的調控器。要想改變調控器,只需把新調控器的名稱 echo 到這個文件中。注意,要想應用一致的策略,必須對每個處理器這么做。例如:

清單 8. 檢查啟用的調控器并改變調控器

[root@systemx ~]# cd /sys/devices/system/cpu/

[root@systemx cpu]# ls

cpu0 cpu1 cpu2 cpu3 cpu4 cpu5 cpu6 cpu7 sched_mc_power_savings

[root@systemx cpu]# cat cpu0/cpufreq/scaling_governor

performance

[root@systemx cpu]# echo conservative > cpu0/cpufreq/scaling_governor

[root@systemx cpu]# cat cpu0/cpufreq/scaling_governor

conservative

scaling_max_freq 和 scaling_min_freq 文件顯示調控器可用的***和最小頻率。通過把一個可用的頻率 echo 到這些文件中,用戶可以修改調控器可用頻率的范圍。注意,這個頻率必須是 scaling_available_frequencies 中列出的頻率之一,因為這些是系統可用的所有處理器頻率。同樣,必須對每個處理器這么做。例如:

清單 9. 修改調控器可用的頻率

[root@systemx ~]# cd /sys/devices/system/cpu/

[root@systemx cpu]# cat cpu0/cpufreq/scaling_available_frequencies

2997000 2664000 2331000 1998000

[root@systemx cpu]# cat cpu0/cpufreq/scaling_max_freq

2997000

[root@systemx cpu]# cat cpu0/cpufreq/scaling_min_freq

1998000

[root@systemx cpu]# echo 2331000 > cpu0/cpufreq/scaling_min_freq

[root@systemx cpu]# cat cpu0/cpufreq/scaling_min_freq

2331000

使用 cpuspeed 設置文件

除了像前面提到的那樣直接 echo 設置值,用戶還可以使用 cpuspeed 設置文件修改驅動程序、調控器、***速度、最小速度、利用率閾值和 ignore_nice_load 設置。RHEL 5.2 附帶 cpuspeed,但是其他 Linux 發行版可能不包含這個包。如果您的發行版不包含 cpuspeed,可以 下載 carlthompson.net 版本;README 中提供安裝說明。要想使用 cpuspeed 的 RHEL 5.2 版本,只需編輯 /etc/sysconfig/cpuspeed 文件,在文件中設置任何變量值,然后執行以下命令:

/etc/init.d/cpuspeed restart

這個命令會讓新設置生效。請記住,必須裝載相應的調控器模塊,才能開始使用調控器,除非它已經是內置的。

使用 cpufreq-utils

RHEL 5.2 和其他一些發行版還附帶 cpufreq-utils 包,它為 CPUfreq 子系統提供另一個用戶接口。大多數其他發行版應該也包含這個包。在安裝 cpufreq-utils rpm 時,會得到兩個實用程序 cpufreq-info 和 cpufreq-set。

cpufreq-info 實用程序列出處理器的相關信息及其 CPUfreq 設置,比如當前頻率、頻率限制、CPUfreq 驅動程序、當前策略、當前調控器和 affected-cpus 列表。

在啟用 userspace 調控器時,cpufreq-set 實用程序讓用戶可以修改每個處理器的可用頻率范圍、使用的調控器和當前運行頻率。更多信息見 cpufreq-info 和 cpufreq-set 手冊頁。

與調控器相關的設置

現在討論用戶可以在內核調控器中修改的設置。

powersave 和 performance 調控器

這兩個調控器分別把處理器頻率靜態地設置為***和***頻率。用戶只能修改前一節中討論的設置。

userspace 調控器

#p#

現在開始討論與調控器相關的設置。如果啟用 userspace 調控器,還會在 cpufreq 目錄中看到 scaling_setspeed 文件,根用戶可以寫這個文件。這個調控器讓用戶或用戶空間中的程序可以交互地修改處理器頻率。用戶可以把所需的頻率 echo 到這個文件中,一些用戶空間守護進程也可以設置這個值。正如對前面討論的文件所做的,必須修改每個處理器的 scaling_setspeed 文件。

許多守護進程使用 userspace 調控器調整處理器頻率;下面是幾個例子:

cpudyn(CPU 動態頻率控制):這個守護進程根據處理器負載修改基本頻率,還可以在沒有活動時讓磁盤進入備用狀態以節省能源。

cpufreqd:這個守護進程可以對電池電壓、AC 狀態、溫度、正在運行的程序、處理器使用量等做出反應。

cpuspeed:這個守護進程可以根據處理器需求、電源變化、溫度等改變頻率。

powernowd:這個調控器守護進程根據處理器負載改變基本頻率,用戶可以選擇四種行為模式。

ondemand 調控器

如果裝載 ondemand 調控器,會在 cpufreq 目錄中看到 ondemand 目錄。在這個目錄中,有許多可調的設置。對于可由根用戶寫的所有文件,可以通過 echo 新的設置值來修改。注意,對 ondemand 設置的任何修改會應用于整個系統范圍,所以不需要為每個處理器修改設置。

清單 10. 檢查 ondemand 的可調設置

[root@systemx ~]# cd /sys/devices/system/cpu/cpu0/cpufreq/ondemand/

[root@systemx ondemand]# ls -l

total 0

-rw-r--r-- 1 root root 4096 Nov 19 10:30 ignore_nice_load

-rw-r--r-- 1 root root 4096 Nov 19 10:30 powersave_bias

-rw-r--r-- 1 root root 4096 Nov 19 10:30 sampling_rate

-r--r--r-- 1 root root 4096 Nov 19 10:30 sampling_rate_max

-r--r--r-- 1 root root 4096 Nov 19 10:30 sampling_rate_min

-rw-r--r-- 1 root root 4096 Nov 19 10:30 up_threshold

ignore_nice_load 文件可以設置為 0 或 1(0 是默認設置)。當這個參數設置為 1 時,任何具有 “nice” 值的處理器不計入總處理器利用率。在設置為 0 時,所有處理器都計入利用率。如果運行的某個程序需要大量處理器,但是您不關心運行時間,就可以使用這個設置。如果把 “nice” 設置應用于進程,就可以避免它受到頻率調整的影響。

接下來,powersave_bias 文件可以略微改變 ondemand 調控器的行為,它在用戶不太關心性能的情況下把目標頻率降低指定的百分比,從而節省更多電力。這個設置可以設置為 1 到 1000 之間的值,這會使頻率下降百分之 0.1 到***。

sampling_rate(以微秒為單位)決定調控器間隔多長時間檢查處理器利用率,以便決定設置什么頻率。這個設置必須設置為 sampling_rate_min 和 sampling_rate_max 之間的值。

***,up_threshold 設置允許用戶修改***處理器利用率閾值,這個閾值觸發處理器頻率修改。在默認情況下,up_threshold 值為 80。這意味著,內核將按照 sampling_rate 指定的時間間隔檢查處理器利用率,如果超過了百分之 80,調控器會把頻率提高到可用的***頻率。

conservative 調控器

如果裝載 conservative 調控器,會在 cpufreq 目錄中看到 conservative 目錄。在這個目錄中,有許多可調的設置。對于可由根用戶寫的所有文件,可以通過 echo 新的設置值來修改。注意,對 conservative 設置的任何修改會應用于整個系統范圍,所以不需要為每個處理器修改設置。

清單 11. 檢查 conservative 的可調設置

[root@systemx ~]# cd /sys/devices/system/cpu/cpu0/cpufreq/conservative/

[root@systemx conservative]# ls -l

total 0

-rw-r--r-- 1 root root 4096 Nov 19 11:31 down_threshold

-rw-r--r-- 1 root root 4096 Nov 19 11:31 freq_step

-rw-r--r-- 1 root root 4096 Nov 19 11:31 ignore_nice_load

-rw-r--r-- 1 root root 4096 Nov 19 11:31 sampling_down_factor

-rw-r--r-- 1 root root 4096 Nov 19 11:31 sampling_rate

-r--r--r-- 1 root root 4096 Nov 19 11:31 sampling_rate_max

-r--r--r-- 1 root root 4096 Nov 19 11:31 sampling_rate_min

-rw-r--r-- 1 root root 4096 Nov 19 11:31 up_threshold

ignore_nice_load、sampling_rate、sampling_rate_max、sampling_rate_min 和 up_threshold 設置與前面討論的 ondemand 調控器中的設置相同。

conservative 調控器還允許用戶設置 down_threshold。例如,在默認情況下 down_threshold 設置為 20。這意味著,內核將按照 sampling_rate 指定的時間間隔檢查處理器利用率,如果低于百分之 20,調控器會降低頻率。

freq_step 設置修改調控器在調整 CPU 頻率時使用的頻率步長(包括提高和降低兩個方向)。在默認情況下,這個值設置為 5,這意味著,在每次決定調整頻率時,調控器調整頻率的幅度為***或最小頻率的百分之 5。如果把這個值設置為 100,這個調控器的表現會與 ondemand 調控器完全一樣。

***,sampling_down_factor 作為 sampling_rate 的乘數,放寬處理器利用率取樣的時間間隔。例如,如果 sampling_rate 設置為 10,000,而 sampling_down_factor 設置為 2,那么處理器利用率取樣的時間間隔為 20,000 微秒。

調度器可調項

現在,討論兩個調度器可調項 —

sched_mc_power_savings 用于在核上調度進程。

sched_smt_power_savings 用于在核上的超線程上調度進程。

sched_mc_power_savings

sched_mc_power_savings 是 /sys/devices/system/cpu/ 目錄中的調度器可調項。如果要使用這個可調項,不要忘了把 CONFIG_SCHED_MC 配置文件選項設置為 y(見 減少 Linux 耗電,第 1 部分:CPUfreq 子系統 中的設置部分)。

清單 12. 檢查 sched_mc_power_savings 的位置

[root@systemx ~]# cd /sys/devices/system/cpu/

[root@systemx cpu]# ls -l

total 0

drwxr-xr-x 5 root root 0 Nov 12 17:45 cpu0

drwxr-xr-x 5 root root 0 Nov 12 17:45 cpu1

drwxr-xr-x 5 root root 0 Nov 12 17:45 cpu2

drwxr-xr-x 5 root root 0 Nov 12 17:45 cpu3

drwxr-xr-x 5 root root 0 Nov 12 17:45 cpu4

drwxr-xr-x 5 root root 0 Nov 12 17:45 cpu5

drwxr-xr-x 5 root root 0 Nov 12 17:45 cpu6

drwxr-xr-x 5 root root 0 Nov 12 17:45 cpu7

-rwxrwxr-x 1 root root 4096 Nov 19 09:54 sched_mc_power_savings

sched_mc_power_savings 文件可以設置為 0 或 1;0 是默認設置。在設置為 1 時,調度器嘗試在盡可能少的核上調度進程,讓其他核可以空閑。換句話說,如果所有處理器都不太忙,那么 sched_mc_power_savings 嘗試把工作整合在盡可能少的處理器上。然后就可以讓一些處理器空閑,從而進一步節省電力,尤其是在處理器支持 C 狀態等深度睡眠狀態的情況下(在這種狀態下處理器在空閑時只消耗非常少的電力)。實際節省的電力取決于許多因素,包括可用處理器的數量和正在運行哪種 CPUfreq 調控器。當 sched_mc_power_savings 設置為 0 時,不執行特殊的調度。

sched_smt_power_savings

sched_smt_power_savings 可調項也是 /sys/devices/system/cpu/ 目錄中的調度器可調項;但是,這個可調項只適用于支持超線程的系統。如果要使用這個可調項,不要忘了把 CONFIG_SCHED_SMT 配置文件選項設置為 y(見第 1 部分中的設置部分)。

清單 13. 檢查 sched_smt_power_savings 的位置

[root@systemx ~]# cd /sys/devices/system/cpu/

[root@systemx cpu]# ls -l

total 0

drwxr-xr-x 5 root root 0 Nov 12 17:45 cpu0

drwxr-xr-x 5 root root 0 Nov 12 17:45 cpu1

drwxr-xr-x 5 root root 0 Nov 12 17:45 cpu2

drwxr-xr-x 5 root root 0 Nov 12 17:45 cpu3

drwxr-xr-x 5 root root 0 Nov 12 17:45 cpu4

drwxr-xr-x 5 root root 0 Nov 12 17:45 cpu5

drwxr-xr-x 5 root root 0 Nov 12 17:45 cpu6

drwxr-xr-x 5 root root 0 Nov 12 17:45 cpu7

-rwxrwxr-x 1 root root 4096 Nov 19 09:54 sched_mc_power_savings

-rwxrwxr-x 1 root root 4096 Nov 19 09:54 sched_smt_power_savings

與 sched_mc_power_savings 設置相似,sched_smt_power_savings 文件可以設置為 0 或 1;0 是默認設置。在設置為 1 時,調度器嘗試在核上盡可能少的超線程上調度進程,讓其他超線程可以空閑,進而通過空閑 C 狀態節省電力。

【編輯推薦】

  1. 排除Linux服務器接入故障的七個要素
  2. Linux服務器安裝后的優化
  3. 跨平臺Linux虛擬服務器配置心得
責任編輯:趙寧寧 來源: chinaitlab
相關推薦

2009-12-16 10:52:47

PSP無線路由設置

2011-07-08 09:42:03

2010-07-16 14:31:11

Linux Telne

2010-08-10 14:51:29

2020-06-09 08:09:07

機器學習統計學習無監督學習

2010-07-27 13:07:23

NFS Server

2009-12-17 15:17:39

設置路由器

2009-12-22 15:25:23

2009-12-16 15:56:05

Cisco路由器配置

2010-10-08 14:23:08

MySQL中INSER

2011-09-08 11:35:18

2017-08-31 14:09:26

數據庫MySQLSQL優化

2010-08-05 15:54:20

NFSUNIX

2022-05-07 06:52:04

Edge瀏覽器技巧

2009-12-01 19:01:34

路由器IP設置

2020-07-07 10:41:34

Chrome省電瀏覽器

2023-04-12 11:32:03

2023-04-12 13:55:16

2010-09-01 17:15:45

Linux DHCP

2010-08-05 14:15:20

NFS服務器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲欧美日韩中文字幕一区二区三区 | 91精品国产自产精品男人的天堂 | 国产精品久久一区二区三区 | 成人高清在线视频 | 国产欧美一区二区三区另类精品 | 日韩在线播放av | 91婷婷韩国欧美一区二区 | 国产99久久精品一区二区永久免费 | 亚洲黄色高清视频 | 男人天堂国产 | 日韩在线欧美 | 午夜精品久久久久久久久久久久久 | 色网在线看 | 欧美一区二区大片 | 国产美女黄色片 | 久久精品小视频 | 国产精品综合色区在线观看 | 亚洲一区二区电影在线观看 | 91免费看片 | 亚洲一区免费在线 | 久久这里有精品 | 日韩专区中文字幕 | 国产一级一级毛片 | 日韩中文一区二区三区 | 蜜桃免费一区二区三区 | 中文字幕在线观看一区二区 | 91免费观看 | 在线观看一区 | 成年人在线视频 | 久久日本 | 欧美成人不卡 | 九九导航 | 国产 日韩 欧美 中文 在线播放 | 精品福利视频一区二区三区 | 欧美高清视频一区 | 成人高清视频在线观看 | 久久逼逼 | 午夜视频在线观看网址 | 亚洲精品久久久久中文字幕欢迎你 | 成人影院免费视频 | 国产精品黄色 |