0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux用電功耗調(diào)優(yōu)的筆記分享

xCb1_yikoulinux ? 來(lái)源:山河已無(wú)恙 ? 作者:山河已無(wú)恙 ? 2022-06-23 15:19 ? 次閱讀

寫在前面

  • 整理一些Linux用電功耗調(diào)優(yōu)的筆記,分享給小伙伴,關(guān)于用電調(diào)優(yōu)個(gè)人覺(jué)得:
  • 最好使用powertop這樣的專業(yè)工具來(lái)搞
  • 或者使用Linux自帶的調(diào)優(yōu)策略來(lái)
  • 建議針對(duì)某些策略進(jìn)行調(diào)優(yōu)要做好評(píng)估,錯(cuò)誤預(yù)算。
  • 如果單純?yōu)榱耸‰?,造成生產(chǎn)故障,最后一地雞毛,那就得不償失,好心辦了壞事。
  • 博文提到的策略個(gè)人覺(jué)得部分并不適合生產(chǎn)環(huán)境,部分可以嘗試,有些可能內(nèi)核原因已經(jīng)不支持了,這里整理出來(lái)作為了解
  • 博文內(nèi)容涉及:
    • 紅帽推薦的節(jié)能策略,書有些舊,所以部分修改內(nèi)核參數(shù)的模塊簡(jiǎn)單記錄,博文沒(méi)有Demo
    • 使用紅帽自帶調(diào)優(yōu)模塊tuned調(diào)優(yōu)
    • 使用節(jié)源工具powertop自動(dòng)調(diào)優(yōu)
  • 食用方式
    • 需了解Linux基礎(chǔ)知識(shí)

我以為愛(ài)情可以填滿人生的遺憾,然而,制造更多遺憾的卻偏偏是愛(ài)情


我的Linux內(nèi)核版本

┌──[root@liruilongs.github.io]-[~]
└─$uname-r
4.18.0-193.el8.x86_64
┌──[root@liruilongs.github.io]-[~]
└─$

節(jié)能策略

管理與CPU活動(dòng)相關(guān)的功耗和廢熱數(shù)據(jù)中心運(yùn)行的主要關(guān)注點(diǎn)之一。對(duì)于需要最大限度延長(zhǎng)電池壽命的移動(dòng)設(shè)備來(lái)說(shuō),最大限度地減少功耗也越來(lái)越重要。

可以使用一些通用策略來(lái)降低計(jì)算機(jī)上的功耗:

  • 禁用未使用的服務(wù)。
  • 禁用不用的硬件設(shè)備。
  • 避免對(duì)系統(tǒng)進(jìn)行輪詢操作。
  • 延長(zhǎng)延遲活動(dòng)的生命周期。
  • 允許不活動(dòng)的設(shè)備進(jìn)入省電狀態(tài)。

下面我們我們看一些可以在在Linux系統(tǒng)上實(shí)現(xiàn)這些策略的一些方法。

「禁用以太網(wǎng)局域:ethtool -s eth0 wol d

這里需要注意的是,當(dāng)禁用之后,同一局域網(wǎng)下就不支持遠(yuǎn)程開(kāi)機(jī)了

┌──[root@liruilongs.github.io]-[~]
└─$ethtool-seth0wold
┌──[root@liruilongs.github.io]-[~]
└─$ethtooleth0
Settingsforeth0:
Supportedports:[TP]
Supportedlinkmodes:1000baseT/Full
10000baseT/Full
Supportedpauseframeuse:No
Supportsauto-negotiation:No
SupportedFECmodes:Notreported
Advertisedlinkmodes:Notreported
Advertisedpauseframeuse:No
Advertisedauto-negotiation:No
AdvertisedFECmodes:Notreported
Speed:10000Mb/s
Duplex:Full
Port:TwistedPair
PHYAD:0
Transceiver:internal
Auto-negotiation:off
MDI-X:Unknown
SupportsWake-on:uag
Wake-on:d
Linkdetected:yes
┌──[root@liruilongs.github.io]-[~]
└─$

支持Wake-On-LAN的以太網(wǎng)卡必須保持供電以監(jiān)控Wake-On-LAN以太網(wǎng)幀(可用于遠(yuǎn)程開(kāi)機(jī)),即使在系統(tǒng)斷電的情況下。

「啟用筆記本模式」

當(dāng)啟用筆記本模式時(shí),緩存中的臟頁(yè)一次提交,而不是隨著時(shí)間的推移分散提交,減少了硬盤休眠后重新啟動(dòng)的需要。

┌──[root@liruilongs.github.io]-[~]
└─$echo1>/proc/sys/vm/laptop_mode
┌──[root@liruilongs.github.io]-[~]
└─$cat/proc/sys/vm/laptop_mode
1
┌──[root@liruilongs.github.io]-[~]
└─$

「關(guān)閉 nmi_watchdog」

nmi_watchdog 內(nèi)核模塊用于監(jiān)視內(nèi)核,并在懷疑CPU陷入繁忙循環(huán)時(shí)生成一個(gè)不可屏蔽的“中斷”,允許內(nèi)核記錄調(diào)試信息。

┌──[root@liruilongs.github.io]-[~]
└─$cat/proc/sys/kernel/nmi_watchdog
1
┌──[root@liruilongs.github.io]-[~]
└─$echo0>/proc/sys/kernel/nmi_watchdog
┌──[root@liruilongs.github.io]-[~]
└─$cat/proc/sys/kernel/nmi_watchdog
0
┌──[root@liruilongs.github.io]-[~]
└─$

「啟用noatime文件系統(tǒng)掛載選項(xiàng),不更新訪問(wèn)時(shí)間」

Unix atime跟蹤文件的訪問(wèn)時(shí)間,其效果是每次讀都有一個(gè)相關(guān)的寫操作來(lái)更新atimeatime字段很少使用,可以通過(guò)使用noatime掛載文件系統(tǒng)來(lái)禁用它。注意,Linux 6內(nèi)核支持relative選項(xiàng),該選項(xiàng)維護(hù)atime字段,但將更新提交推遲一天。我們當(dāng)前的系統(tǒng)為Linux release 8.2 (Ootpa)支持relativestrictatime

man幫助文檔

atimeDonotusethenoatimefeature,sotheinodeaccesstimeiscontrolledbykerneldefaults.See
alsothedescriptionsoftherelatimeandstrictatimemountoptions.

noatime
Donotupdateinodeaccesstimesonthisfilesystem(e.g.forfasteraccessonthenewsspoolto
speedupnewsservers).Thisworksforallinodetypes(directoriestoo),soitimplies
nodiratime.

啟用方式

┌──[root@liruilongs.github.io]-[~]
└─$mount-oremount,noatime/dev/mapper/rhel-home/home

可以通過(guò)stat命令來(lái)查看文件目錄的詳細(xì)信息

┌──[root@liruilongs.github.io]-[/home]
└─$stat/home/
File:/home/
Size:23Blocks:0IOBlock:4096directory
Device:fd02h/64770dInode:128Links:3
Access:(0755/drwxr-xr-x)Uid:(0/root)Gid:(0/root)
Context:system_uhome_root_t:s0
Access:2020-11-250533.506038318+0800
Modify:2022-04-112350.446087028+0800
Change:2022-06-031141.288596109+0800
Birth:-

「禁用經(jīng)常不使用的藍(lán)牙接口

┌──[root@liruilongs.github.io]-[/home/liruilong]
└─$hciconfighci0down

藍(lán)牙無(wú)線電接收器耗電,并需要連接USB子系統(tǒng)(額,英語(yǔ)小白..原文:and exercises the USB subsystem.)。我們平?;静粫?huì)用的,禁用它

┌──[root@liruilongs.github.io]-[/home/liruilong]
└─$hciconfig-a
hci0:Type:PrimaryBus:USB
BDAddress:3C8061:72ACLMTU:8192:128SCOMTU:64:128
UPRUNNING
RXbytes:1048acl:0sco:0events:51errors:0
TXbytes:1209acl:0sco:0commands:51errors:0
Features:0xff0xff0x8f0xfe0x830xe10x080x80
Packettype:DM1DM3DM5DH1DH3DH5HV1HV2HV3
Linkpolicy:RSWITCHHOLDSNIFFPARK
Linkmode:SLAVEACCEPT
Name:'liruilongs.github.io'
Class:0x4c0000
ServiceClasses:Rendering,Capturing,Telephony
DeviceClass:Miscellaneous,
HCIVersion:2.1(0x4)Revision:0x100
LMPVersion:2.1(0x4)Subversion:0x100
Manufacturer:notassigned(6502)
命令選擇 描述
-a 顯示藍(lán)牙設(shè)備信息
up 開(kāi)啟藍(lán)牙設(shè)備
down 關(guān)閉藍(lán)牙設(shè)備
reset 重置藍(lán)牙設(shè)備
pscan 啟用頁(yè)面掃描,禁用查詢掃描
┌──[root@liruilongs.github.io]-[/home/liruilong]
└─$hciconfigpscan
hci0:Type:PrimaryBus:USB
BDAddress:3C8061:72ACLMTU:8192:128SCOMTU:64:128
UPRUNNING
RXbytes:1840acl:0sco:0events:78errors:0
TXbytes:1571acl:0sco:0commands:78errors:0
┌──[root@liruilongs.github.io]-[/home/liruilong]
└─$hciconfighci0down
┌──[root@liruilongs.github.io]-[/home/liruilong]
└─$hciconfigpscan
hci0:Type:PrimaryBus:USB
BDAddress:3C8061:72ACLMTU:8192:128SCOMTU:64:128
DOWN
RXbytes:1840acl:0sco:0events:78errors:0
TXbytes:1571acl:0sco:0commands:78errors:0

「啟用按需CPU頻率調(diào)控器」

Linux內(nèi)核允許通過(guò)可配置的策略來(lái)控制CPU速度。ondemand調(diào)控器允許cpu閑置或在使用不頻繁時(shí)以較低的速度運(yùn)行。

┌──[root@liruilongs.github.io]-[/usr/lib/modules/4.18.0-193.el8.x86_64/kernel/drivers/cpufreq]
└─$cat/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
┌──[root@liruilongs.github.io]-[/usr/lib/modules/4.18.0-193.el8.x86_64/kernel/drivers/cpufreq]
└─$modprobecpufreq_ondemand
┌──[root@liruilongs.github.io]-[/usr/lib/modules/4.18.0-193.el8.x86_64/kernel/drivers/cpufreq]
└─$echoondemand>/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
┌──[root@liruilongs.github.io]-[/usr/lib/modules/4.18.0-193.el8.x86_64/kernel/drivers/cpufreq]
└─$

常見(jiàn)策略我們簡(jiǎn)單來(lái)看下。

  • ondemand系統(tǒng)默認(rèn)的超頻模式,按需調(diào)節(jié),內(nèi)核提供的功能,不是很強(qiáng)大,但有效實(shí)現(xiàn)了動(dòng)態(tài)頻率調(diào)節(jié),平時(shí)以低速方式運(yùn)行,當(dāng)系統(tǒng)負(fù)載提高時(shí)候自動(dòng)提高頻率。以這種模式運(yùn)行不會(huì)因?yàn)榻殿l造成性能降低,同時(shí)也能節(jié)約電能和降低溫度。一般官方內(nèi)核默認(rèn)的方式都是ondemand。
  • interactive交互模式,直接上最高頻率,然后看CPU負(fù)荷慢慢降低,比較耗電。Interactive 是以 CPU 排程數(shù)量而調(diào)整頻率,從而實(shí)現(xiàn)省電。InteractiveX 是以 CPU 負(fù)載來(lái)調(diào)整 CPU 頻率,不會(huì)過(guò)度把頻率調(diào)低。所以比 Interactive 反應(yīng)好些,但是省電的效果一般。
  • conservative保守模式,類似于ondemand,但調(diào)整相對(duì)較緩,想省電就用他吧。Google官方內(nèi)核,kang內(nèi)核默認(rèn)模式。
  • smartass聰明模式,是I和C模式的升級(jí),該模式在比interactive 模式不差的響應(yīng)的前提下會(huì)做到了更加省電。
  • performance性能模式,只有最高頻率,從來(lái)不考慮消耗的電量,性能沒(méi)得說(shuō),但是耗電量。
  • powersave 省電模式,通常以最低頻率運(yùn)行。
  • userspace用戶自定義模式,系統(tǒng)將變頻策略的決策權(quán)交給了用戶態(tài)應(yīng)用程序,并提供了相應(yīng)的接口供用戶態(tài)應(yīng)用程序調(diào)節(jié)CPU 運(yùn)行頻率使用。也就是長(zhǎng)期以來(lái)都在用的那個(gè)模式??梢酝ㄟ^(guò)手動(dòng)編輯配置文件進(jìn)行配置
  • Hotplug類似于ondemand, 但是cpu會(huì)在關(guān)屏下嘗試關(guān)掉一個(gè)cpu,并且?guī)в衐eep sleep,比較省電。

臨時(shí)設(shè)置,發(fā)現(xiàn)報(bào)錯(cuò)了。根據(jù)提示信息我們排查一下問(wèn)題。

┌──[root@liruilongs.github.io]-[/sys/devices/system/cpu/cpu0]
└─$cpupowerfrequency-set-gondemand
Settingcpu:0
Errorsettingnewvalues.Commonerrors:
-Doyouhaveproperadministrationrights?(super-user?)
-Isthegovernoryourequestedavailableandmodprobed?
-Tryingtosetaninvalidpolicy?
-Tryingtosetaspecificfrequency,butuserspacegovernorisnotavailable,
forexamplebecauseofhardwarewhichcannotbesettoaspecificfrequency
orbecausetheuserspacegovernorisn'tloaded?

查frequency-info信息,發(fā)現(xiàn)調(diào)頻的信息都沒(méi)有

┌──[root@liruilongs.github.io]-[/sys/devices/system/cpu/cpu0]
└─$cpupowerfrequency-info
analyzingCPU0:
noorunknowncpufreqdriverisactiveonthisCPU
CPUswhichrunatthesamehardwarefrequency:NotAvailable
CPUswhichneedtohavetheirfrequencycoordinatedbysoftware:NotAvailable
maximumtransitionlatency:Cannotdetermineorisnotsupported.
hardwarelimits:NotAvailable
availablecpufreqgovernors:NotAvailable
Unabletodeterminecurrentpolicy
currentCPUfrequency:Unabletocallhardware
currentCPUfrequency:Unabletocalltokernel
booststatesupport:
Supported:no
Active:no
BoostStates:0
TotalStates:1
Pstate-P0:1600MHz

可能是調(diào)頻模塊沒(méi)有啟動(dòng),我們來(lái)看下。

┌──[root@liruilongs.github.io]-[/sys/devices/system/cpu/cpu0]
└─$cd/sys/devices/system/cpu/cpu0;ls
cachecrash_notes_sizefirmware_nodenode0subsystemuevent
crash_notesdrivermicrocodepowertopology

確實(shí)么有名為cpufreq的文件夾,然后我們看一下我的CUP信息

┌──[root@liruilongs.github.io]-[/sys/devices/system/cpu/cpu0]
└─$cat/proc/cpuinfo|grepname
modelname:AMDRyzen72700UwithRadeonVegaMobileGfx
modelname:AMDRyzen72700UwithRadeonVegaMobileGfx
┌──[root@liruilongs.github.io]-[/sys/devices/system/cpu/cpu0]
└─$

可以用的 CPUfreq 模塊

┌──[root@liruilongs.github.io]-[/sys/devices/system/cpu/cpu0]
└─$ls/usr/lib/modules/$(uname-r)/kernel/drivers/cpufreq/
acpi-cpufreq.ko.xzp4-clockmod.ko.xzspeedstep-lib.ko.xz
amd_freq_sensitivity.ko.xzpowernow-k8.ko.xz
┌──[root@liruilongs.github.io]-[/sys/devices/system/cpu/cpu0]
└─$
  • p4-clockmod.ko.xz Intel P4的處理器
  • speedstep-lib.ko.xz 迅弛,很多筆記本都是這個(gè)
  • amd_freq_sensitivity.ko.xz,powernow-k*.ko AMD處理器用的
  • acpi-cpufreq.ko.xz 如果所有的都不行,試試這個(gè),(但2.6.20或以上的內(nèi)核推薦優(yōu)先使用該項(xiàng))

加載一下AMD對(duì)應(yīng)的模塊試試,發(fā)現(xiàn)沒(méi)辦法加載

┌──[root@liruilongs.github.io]-[/lib/modules/4.18.0-193.el8.x86_64/kernel/drivers/cpufreq]
└─$modprobepowernow-k8
modprobe:ERROR:couldnotinsert'powernow_k8':Nosuchdevice

嘗試修改一下配置試試,我們要修改這個(gè)文件

┌──[root@liruilongs.github.io]-[/lib/modules/4.18.0-193.el8.x86_64/kernel/drivers/cpufreq]
└─$cat/proc/cmdline
BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-193.el8.x86_64root=/dev/mapper/rhel-rootroresume=/dev/mapper/rhel-swapnet.ifnames=0biosdevname=0rd.lvm.lv=rhel/rootrd.lvm.lv=rhel/swaprhgbquiet

但是cmdline 不能直接更改,而是通過(guò)更改配置文件生成的該文件

┌──[root@liruilongs.github.io]-[/lib/modules/4.18.0-193.el8.x86_64/kernel/drivers/cpufreq]
└─$sed'$aGRUB_CMDLINE_LINUX_DEFAULT="intel_pstate=disable"'/etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed's,release.*$,,g'/etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="resume=/dev/mapper/rhel-swapnet.ifnames=0biosdevname=0rd.lvm.lv=rhel/rootrd.lvm.lv=rhel/swaprhgbquiet"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
GRUB_CMDLINE_LINUX_DEFAULT="intel_pstate=disable"
┌──[root@liruilongs.github.io]-[/lib/modules/4.18.0-193.el8.x86_64/kernel/drivers/cpufreq]
└─$sed-i'$aGRUB_CMDLINE_LINUX_DEFAULT="intel_pstate=disable"'/etc/default/grub

運(yùn)行grub2-mkconfig -o /boot/grub2/grub.cfg,重新生成config文件

┌──[root@liruilongs.github.io]-[/lib/modules/4.18.0-193.el8.x86_64/kernel/drivers/cpufreq]
└─$grub2-mkconfig-o/boot/grub2/grub.cfg
Generatinggrubconfigurationfile...

reboot 重啟檢查/proc/cmdline

┌──[root@liruilongs.github.io]-[~]
└─$cat/proc/cmdline|grepintel_pstate=disable
BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-193.el8.x86_64root=/dev/mapper/rhel-rootroresume=/dev/mapper/rhel-swapnet.ifnames=0biosdevname=0rd.lvm.lv=rhel/rootrd.lvm.lv=rhel/swaprhgbquietintel_pstate=disable

還是不行,時(shí)間關(guān)系這里做簡(jiǎn)單記錄,感興趣小伙伴在研究下,看文檔需要系統(tǒng) BIOS 配置為允許操作系統(tǒng)控制 CPU 電源管理

┌──[root@liruilongs.github.io]-[/usr/lib/modules/4.18.0-193.el8.x86_64/kernel/drivers/cpufreq]
└─$modprobepowernow-k8
modprobe:ERROR:couldnotinsert'powernow_k8':Nosuchdevice
┌──[root@liruilongs.github.io]-[/usr/lib/modules/4.18.0-193.el8.x86_64/kernel/drivers/cpufreq]
└─$

感興趣小伙伴可以參考下這個(gè):https://access.redhat.com/solutions/253803

「將符合AC97的聲卡設(shè)置為省電模式」

┌──[root@liruilongs.github.io]-[~]
└─$cat/sys/module/snd_ac97_codec/parameters/power_save
5
┌──[root@liruilongs.github.io]-[~]
└─$echo1>/sys/module/snd_ac97_codec/parameters/power_save
┌──[root@liruilongs.github.io]-[~]
└─$cat/sys/module/snd_ac97_codec/parameters/power_save
1
┌──[root@liruilongs.github.io]-[~]
└─$

「禁用rsyslogd同步」rsyslog是一個(gè)開(kāi)源的軟件程序,它負(fù)責(zé)寫入日志。它記錄絕大部分的日志記錄,和系統(tǒng)有關(guān)的、安全、認(rèn)證ssh,su、計(jì)劃任務(wù)at,cron等日志。所以這要根據(jù)實(shí)際情況選擇,如果遇到木馬入侵等安全相關(guān)問(wèn)題,通過(guò)日志排查可以發(fā)現(xiàn)問(wèn)題。

┌──[root@liruilongs.github.io]-[~]
└─$sed-e's#s/var/log/#-&#'/etc/rsyslog.conf

默認(rèn)情況下,rsyslogd在寫入所有文件后同步所有文件。在文件名前面加上"-"將禁用此行為。

┌──[root@liruilongs.github.io]-[~]
└─$grep/var/log/etc/rsyslog.conf
*.info;mail.none;authpriv.none;cron.none/var/log/messages
authpriv.*/var/log/secure
mail.*-/var/log/maillog
cron.*/var/log/cron
uucp,news.crit/var/log/spooler
local7.*/var/log/boot.log
┌──[root@liruilongs.github.io]-[~]
└─$

「啟用電源感知CPU調(diào)度器」

這個(gè)我的機(jī)器沒(méi)辦法做Demo。感興趣小伙伴可以研究下

echo1>/sys/devices/system/cpu/sched_mc_power_savings

調(diào)整任務(wù)調(diào)度,使任務(wù)在盡可能少的內(nèi)核上調(diào)度,允許未使用的cpu空閑。支持以下值。

  • 0:無(wú)節(jié)能負(fù)載均衡(默認(rèn)值)
  • 1:對(duì)于長(zhǎng)時(shí)間運(yùn)行的線程,先填充一個(gè)線程/內(nèi)核/包
  • 2:也將任務(wù)喚醒到半空閑的cpu包,以節(jié)省電力

「增加虛擬機(jī)的臟回寫時(shí)間」

┌──[root@liruilongs.github.io]-[/sys/devices/system/cpu]
└─$cat/proc/sys/vm/dirty_writeback_centisecs
500
┌──[root@liruilongs.github.io]-[/sys/devices/system/cpu]
└─$echo300000>/proc/sys/vm/dirty_writeback_centisecs
┌──[root@liruilongs.github.io]-[/sys/devices/system/cpu]
└─$cat/proc/sys/vm/dirty_writeback_centisecs
300000
┌──[root@liruilongs.github.io]-[/sys/devices/system/cpu]
└─$

vm/dirty_writeback_centisecs sysctl控制I/O緩存中的臟頁(yè)提交到磁盤的時(shí)間,在Linux中默認(rèn)為500。增加時(shí)間可以顯著減少磁盤旋轉(zhuǎn),但在崩潰的情況下會(huì)有更多的數(shù)據(jù)丟失的風(fēng)險(xiǎn)。

「開(kāi)啟ALPM (SATAAggressive Link Power Management)模式」

現(xiàn)代SATA控制器可以在不工作時(shí)進(jìn)入低功耗模式,從而顯著節(jié)省電力。

echomin_power>/sys/class/scsihost/hoste/link_power_management_policy

這個(gè)也不行,可能是內(nèi)核版本的原因,或者是需要安裝TLP電源管理工具

「啟用USB 的autosuspend」

usbcore.autosuspend=1(onthekernelcommand1ine)

USB自動(dòng)暫停允許不活動(dòng)的USB設(shè)備進(jìn)入省電模式。

「開(kāi)啟無(wú)線設(shè)備的省電模式」

iwprivwlaneset_power5c

無(wú)線設(shè)備支持不同的功率級(jí)別,從1到5不等。O表示自動(dòng),6表示不節(jié)能。

節(jié)能調(diào)優(yōu)配置文件

RHEL7/8的調(diào)優(yōu)服務(wù)tuned:提供了大量預(yù)設(shè)的調(diào)優(yōu)方案,旨在于簡(jiǎn)化調(diào)優(yōu)的實(shí)施,充分利用系統(tǒng)資源與能效。管理員可以針對(duì)不同的業(yè)務(wù)選擇不同的優(yōu)化策略,節(jié)能的調(diào)優(yōu)可以使用powersave策略

┌──[root@liruilongs.github.io]-[/sys/class/scsi_host/host0]
└─$tuned-admlist|greppowersave
-powersave-Optimizeforlowpowerconsumption
┌──[root@liruilongs.github.io]-[/sys/class/scsi_host/host0]
└─$tuned-admprofilepowersave
┌──[root@liruilongs.github.io]-[/sys/class/scsi_host/host0]
└─$tuned-admactive
Currentactiveprofile:powersave

配置功率使用powertop

PowerTOP 是一個(gè)筆記本電腦節(jié)省電源的 Linux 工具。此工具由 Intel 公司發(fā)布。它可以幫助用戶找出那些耗電量大的程序,通過(guò)修復(fù)或者關(guān)閉那些應(yīng)用程序或進(jìn)程,從而為用戶節(jié)省電源。

PowerTOP 要求 Linux 內(nèi)核開(kāi)啟 tickless idle 功能,具備 2.6.21 及以上版本。另外,PowerTOP 工作的最佳平臺(tái)為筆記本電腦。

官網(wǎng)地址:http://www.linuxpowertop.org/

需要裝包

┌──[root@liruilongs.github.io]-[/sys/class/scsi_host/host0/power]
└─$yum-yinstallpowertop

幫助文檔

┌──[root@liruilongs.github.io]-[~]
└─$powertop--help
Usage:powertop[OPTIONS]

--auto-tunesetsalltunableoptionstotheirGOODsetting
-c,--calibraterunspowertopincalibrationmode
-C,--csv[=filename]generateacsvreport
--debugrunin"debug"mode
--extech[=devnode]usesanExtechPowerAnalyzerformeasurements
-r,--html[=filename]generateahtmlreport
-i,--iteration[=iterations]numberoftimestoruneachtest
-q,--quietsuppressstderroutput
-s,--sample[=seconds]intervalforpowerconsumptionmeasurement
-t,--time[=seconds]generateareportfor'x'seconds
-w,--workload[=workload]filetoexecuteforworkload
-V,--versionprintversioninformation
-h,--helpprintthishelpmenu

Formorehelppleaserefertothe'man8powertop'

b47975f2-f206-11ec-ba43-dac502259ad0.png

Tunables 分頁(yè)為調(diào)優(yōu)選擇b48aad4a-f206-11ec-ba43-dac502259ad0.png

請(qǐng)使用 Tab, Shift + Tab 或方向鍵 ←, → 切換至 Tunables 分頁(yè) ↑, ↓ 上下移動(dòng),于欲調(diào)校的項(xiàng)目按下 Enter 進(jìn)行調(diào)校,當(dāng)所有狀態(tài)顯示為 Good 后即可按下 q 離開(kāi)。b4ae89e0-f206-11ec-ba43-dac502259ad0.png

也可以通過(guò)命令來(lái)批量設(shè)置

┌──[root@liruilongs.github.io]-[~]
└─$powertop--auto-tune
modprobecpufreq_statsfailedLoaded0priormeasurements
RAPLdeviceforcpu0
RAPLdeviceforcpu0
Devfreqnotenabled
globreturnedGLOB_ABORTED
theportissda
LeavingPowerTOP
┌──[root@liruilongs.github.io]-[~]
└─$

PowerTOP 本身并無(wú)儲(chǔ)存功能,但我們可以借由 powertop --html/csv 產(chǎn)生的報(bào)告來(lái)調(diào)校系統(tǒng),甚至于開(kāi)機(jī)時(shí)載入這些設(shè)定.

┌──[root@liruilongs.github.io]-[~]
└─$powertop--html
modprobecpufreq_statsfailedLoaded0priormeasurements
RAPLdeviceforcpu0
RAPLdeviceforcpu0
Devfreqnotenabled
globreturnedGLOB_ABORTED
Preparingtotakemeasurements
Taking1measurement(s)foradurationof20second(s)each.
theportissda
PowerTOPoutputingusingbasefilenamepowertop.html
PSE:docker>scproot@192.168.26.66:/root/powertop.html.
root@192.168.26.66'spassword:
powertop.html100%71KB9.9MB/s00:00
PSE:docker>
b4cf7e52-f206-11ec-ba43-dac502259ad0.png

原文標(biāo)題:Linux性能調(diào)優(yōu)之用電調(diào)優(yōu)(Power Usage Tuning)

文章出處:【微信公眾號(hào):一口Linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1348

    瀏覽量

    40153
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10773

    瀏覽量

    210453
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11171

    瀏覽量

    208482
  • 功耗
    +關(guān)注

    關(guān)注

    1

    文章

    800

    瀏覽量

    31876

原文標(biāo)題:Linux性能調(diào)優(yōu)之用電調(diào)優(yōu)(Power Usage Tuning)

文章出處:【微信號(hào):yikoulinux,微信公眾號(hào):一口Linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    linux命令筆記分

    補(bǔ)個(gè)筆記linux 命令
    發(fā)表于 04-15 08:29

    功耗調(diào)優(yōu)時(shí)經(jīng)常用到的幾個(gè)方法

    前言不清楚當(dāng)前產(chǎn)品的整機(jī)功耗,就不清楚怎么調(diào)優(yōu)獲取產(chǎn)品的整機(jī)及各個(gè)模塊的功耗數(shù)據(jù),需要測(cè)量正確的功耗測(cè)量方法,快速的了解整機(jī)的
    發(fā)表于 12-21 06:31

    開(kāi)關(guān)電源BOOST升壓原理學(xué)習(xí)筆記分

    自己學(xué)習(xí)筆記分享,歡迎交流分享。
    發(fā)表于 12-29 06:16

    基于RT-Thread的功耗調(diào)優(yōu)與測(cè)量實(shí)戰(zhàn)

    前言不清楚當(dāng)前產(chǎn)品的整機(jī)功耗,就不清楚怎么調(diào)優(yōu)獲取產(chǎn)品的整機(jī)及各個(gè)模塊的功耗數(shù)據(jù),需要測(cè)量正確的功耗測(cè)量方法,快速的了解整機(jī)的
    發(fā)表于 10-14 11:18

    如何對(duì)電機(jī)進(jìn)行調(diào)優(yōu)?調(diào)優(yōu)的好處是什么?

    如何自動(dòng)對(duì)電機(jī)進(jìn)行調(diào)優(yōu)
    的頭像 發(fā)表于 08-22 00:03 ?3059次閱讀

    Linux查看資源使用情況和性能調(diào)優(yōu)常用的命令

    目錄 前言 top命令 htop命令 ps命令 free命令 vmstat命令 iosat命令 netstat命令 df命令 du命令 前言 一般來(lái)說(shuō),Linux性能調(diào)優(yōu)涉及CPU、內(nèi)存和 IO
    的頭像 發(fā)表于 11-12 17:54 ?4145次閱讀

    十二個(gè)Pixhawk源碼筆記分析資源下載

    十二個(gè)Pixhawk源碼筆記分析資源下載
    發(fā)表于 04-02 09:20 ?4次下載
    十二個(gè)Pixhawk源碼<b class='flag-5'>筆記分</b>析資源下載

    關(guān)于JVM的調(diào)優(yōu)知識(shí)

    最近很多小伙伴跟我說(shuō),自己學(xué)了不少JVM的調(diào)優(yōu)知識(shí),但是在實(shí)際工作中卻不知道何時(shí)對(duì)JVM進(jìn)行調(diào)優(yōu)。今天,我就為大家介紹幾種JVM調(diào)
    的頭像 發(fā)表于 09-14 14:54 ?751次閱讀

    IGBT筆記分

    IGBT筆記分
    發(fā)表于 02-23 10:07 ?0次下載
    IGBT<b class='flag-5'>筆記分</b>享

    linux網(wǎng)絡(luò)棧監(jiān)控及調(diào)優(yōu):數(shù)據(jù)接收

    linux 網(wǎng)絡(luò)棧的監(jiān)控及調(diào)優(yōu)上沒(méi)有捷徑可言,如果你想做有效的調(diào)優(yōu),就必須搞清楚各個(gè)系統(tǒng)之間是怎么交互的。
    的頭像 發(fā)表于 03-25 16:44 ?1181次閱讀

    電磁場(chǎng)筆記分

    電磁場(chǎng)筆記分享.方便各位學(xué)習(xí)大學(xué)物理的同志們
    發(fā)表于 07-11 17:10 ?1次下載

    jvm調(diào)優(yōu)主要是調(diào)哪里

    JVM調(diào)優(yōu)主要涉及內(nèi)存管理、垃圾回收、線程管理與鎖優(yōu)化等方面。下面將詳細(xì)介紹每個(gè)方面的調(diào)優(yōu)技術(shù)和策略以及如何進(jìn)行優(yōu)化。 內(nèi)存管理 JVM的內(nèi)存管理主要包括堆內(nèi)存、棧內(nèi)存和非堆內(nèi)存。堆內(nèi)
    的頭像 發(fā)表于 12-05 11:37 ?1428次閱讀

    鴻蒙開(kāi)發(fā)實(shí)戰(zhàn):【性能調(diào)優(yōu)組件】

    性能調(diào)優(yōu)組件包含系統(tǒng)和應(yīng)用調(diào)優(yōu)框架,旨在為開(kāi)發(fā)者提供一套性能調(diào)優(yōu)平臺(tái),可以用來(lái)分析內(nèi)存、性能等問(wèn)
    的頭像 發(fā)表于 03-13 15:12 ?345次閱讀
    鴻蒙開(kāi)發(fā)實(shí)戰(zhàn):【性能<b class='flag-5'>調(diào)</b><b class='flag-5'>優(yōu)</b>組件】

    深度解析JVM調(diào)優(yōu)實(shí)踐應(yīng)用

    Tomcat自身的調(diào)優(yōu)是針對(duì)conf/server.xml中的幾個(gè)參數(shù)的調(diào)優(yōu)設(shè)置。首先是對(duì)這幾個(gè)參數(shù)的含義要有深刻而清楚的理解。
    的頭像 發(fā)表于 04-01 10:24 ?389次閱讀
    深度解析JVM<b class='flag-5'>調(diào)</b><b class='flag-5'>優(yōu)</b>實(shí)踐應(yīng)用

    MMC DLL調(diào)優(yōu)

    電子發(fā)燒友網(wǎng)站提供《MMC DLL調(diào)優(yōu).pdf》資料免費(fèi)下載
    發(fā)表于 10-11 11:48 ?0次下載
    MMC DLL<b class='flag-5'>調(diào)</b><b class='flag-5'>優(yōu)</b>