linux性能调优干货,【干货分享】详解Linux性能调优之tuned特性
tuned簡(jiǎn)介
對(duì)普通用戶而言,Linux應(yīng)用環(huán)境優(yōu)化是比較困難的。領(lǐng)域多,范圍廣:CPU、存儲(chǔ)、緩存策略、內(nèi)存管理等涉及的參數(shù)。Linux內(nèi)部雖然有默認(rèn)設(shè)置值,可以應(yīng)對(duì)大多數(shù)的情況場(chǎng)景,但是針對(duì)一些特殊場(chǎng)景,例如高性能、高并發(fā)和高可用的系統(tǒng),就需要我們進(jìn)行調(diào)整。本文介紹的tuned特性就是目前Linux系統(tǒng)上常用的一種調(diào)優(yōu)特性。
tuned特性由tuned和tuned-adm兩個(gè)程序組成。其中 tuned是服務(wù)端程序,用來(lái)監(jiān)控和收集系統(tǒng)各個(gè)組件的數(shù)據(jù);tuned-adm是客戶端程序,用命令行的方式管理和配置 tuned。
tuned提供了一些預(yù)先配置的優(yōu)化策略(profile)可供直接使用,比如:虛擬機(jī)-主機(jī)、虛擬機(jī)-客戶機(jī)、節(jié)能等優(yōu)化場(chǎng)景。當(dāng)然不同的系統(tǒng)和應(yīng)用場(chǎng)景有不同的優(yōu)化方案,tuned預(yù)先配置的優(yōu)化策略不是總能滿足要求,因此tuned還允許用戶自己創(chuàng)建和定制新的調(diào)優(yōu)方案。
中移軟件的BC-Linux操作系統(tǒng)目前就支持tuned特性并使用其進(jìn)行調(diào)優(yōu)。
tuned的子系統(tǒng)
tuned子系統(tǒng)是相互獨(dú)立運(yùn)行的,合作組成tuned的調(diào)優(yōu)方案。每個(gè)子系統(tǒng)可以支持多個(gè)設(shè)備(每臺(tái)設(shè)備可能有多個(gè)cpu、網(wǎng)卡等設(shè)備),并且每個(gè)設(shè)備可以使用單獨(dú)的實(shí)例控制。
CPU
CPU子系統(tǒng)主要實(shí)現(xiàn)兩個(gè)功能:
1. 設(shè)置CPU governor的值為配置文件中 “governor” 參數(shù)的值;CPU governor是內(nèi)核的CPU頻率管理器,通過(guò)參數(shù)來(lái)對(duì)CPU的頻率進(jìn)行調(diào)節(jié),主要是以下幾種參數(shù):
CPU 的governor可以使用如下命令查看:
# cpupower --cpu all frequency-info --governors
查看目前支持的governor
# cpupower --cpu all frequency-info --policy
查看正在使用的governor
2. 根據(jù)CPU的負(fù)載動(dòng)態(tài)的調(diào)節(jié)PM QoS CPU DMA延遲。當(dāng)CPU負(fù)載低于 “l(fā)oad_threshold” 參數(shù)時(shí),延遲被設(shè)為 “l(fā)atency_high” 參數(shù)的數(shù)值,否則的話設(shè)為 “l(fā)atency_low”。如果不希望動(dòng)態(tài)調(diào)節(jié)延遲,可以通過(guò)設(shè)置 “force_latency” 參數(shù),將延遲固定。
VM
內(nèi)存子系統(tǒng)主要調(diào)節(jié)系統(tǒng)的內(nèi)存參數(shù)。
根據(jù) “transparent_hugepages” 參數(shù)的值設(shè)置huge page(巨頁(yè))功能;
# cat /sys/kernel/mm/transparent_hugepage/enabled
查看系統(tǒng)的巨頁(yè)配置
此外內(nèi)存子系統(tǒng)還可以設(shè)置系統(tǒng)參數(shù),也就是“/proc/sys/vm”路徑下的內(nèi)存參數(shù),比較常用的有以下幾種,其余的也可根據(jù)需要配置:
vm.dirty_background_ratio: 設(shè)置 dirty pages 開始后臺(tái)回寫時(shí)的百分比
vm.dirty_ratio: 設(shè)置 dirty pages 開始回寫時(shí)的百分比
vm.swappiness: 控制從物理內(nèi)存換出到交換空間的相對(duì)權(quán)重,取值為0到100,更低的值導(dǎo)致避免交換,而更高的值導(dǎo)致嘗試使用交換空間
DISK
# cat /sys/block/sda/queue/scheduler
查看系統(tǒng)的IO調(diào)度算法
磁盤子系統(tǒng)也可以調(diào)節(jié)內(nèi)核的磁盤參數(shù),也就是“/proc/sys/kernel”路徑下的參數(shù),比較常用的是以下幾種:
kernel.sched_min_granularity_ns: 針對(duì)CPU 計(jì)算密集型任務(wù)設(shè)置調(diào)度器的最小搶占粒度
kernel.sched_wakeup_granularity_ns: 設(shè)置調(diào)度器的喚醒粒度,這將延遲搶占效應(yīng),并減少過(guò)度調(diào)度
kernel.sched_migration_cost_ns: 調(diào)度器認(rèn)為遷移的進(jìn)程“cache hot”因而更少可能被重新遷移的總時(shí)間
此外磁盤子系統(tǒng)還可以配置磁盤電源策略,通過(guò)ALPM磁盤電源管理工具實(shí)現(xiàn),對(duì)應(yīng) “alpm” 參數(shù),用于降低磁盤功耗;也可以動(dòng)態(tài)調(diào)整先進(jìn)電源管理和磁盤spindown的超時(shí)時(shí)間。
NET
網(wǎng)絡(luò)子系統(tǒng)主要調(diào)節(jié)網(wǎng)絡(luò)性能和功耗:
1. 可以調(diào)節(jié)網(wǎng)絡(luò)參數(shù),常用的有以下幾種:
2. 根據(jù)網(wǎng)口的使用情況動(dòng)態(tài)調(diào)整網(wǎng)口的速度,默認(rèn)網(wǎng)口會(huì)一直保持在高速運(yùn)行,可以降低功耗;
3. 根據(jù) “wake-on-lan” 參數(shù),配置wake-on-lan功能。Wake-On-LAN簡(jiǎn)稱WOL,是一種電源管理功能,允許通過(guò)網(wǎng)絡(luò)將設(shè)備從待機(jī)或休眠模式中喚醒。
其他子系統(tǒng)
sysctl
子系統(tǒng)主要使用sysctl工具來(lái)進(jìn)行系統(tǒng)配置,相當(dāng)于修改sysctl.conf配置文件。語(yǔ)法格式是 “name=value” ,name就是sysctl工具的條目,value則是配置參數(shù)。
eeepc_she
根據(jù)CPU負(fù)載動(dòng)態(tài)調(diào)節(jié)FSB的頻率(FSB--前端總線,是連接CPU和北橋芯片的總線),可以降低功耗。
usb
根據(jù) “autosuspend” 參數(shù)設(shè)置USB設(shè)備自動(dòng)掛起的超時(shí)時(shí)間,0表示關(guān)閉USB設(shè)備自動(dòng)掛起。
audio
根據(jù) “timeout” 參數(shù)設(shè)置音頻解碼設(shè)備的自動(dòng)掛起超時(shí)時(shí)間,0表示關(guān)閉自動(dòng)掛起。
mounts
根據(jù)“disable_barriers”參數(shù)開/關(guān)mounts的barrier特性,打開barrier特性次文件系統(tǒng)日志記錄會(huì)更加可靠,但是會(huì)降低一些性能。
sysfs
通過(guò)設(shè)置sysfs路徑下的相關(guān)參數(shù)進(jìn)行系統(tǒng)性能調(diào)節(jié),語(yǔ)法格式是 “name=value” ,name就是sysfs路徑的條目,value則是配置參數(shù)。
tuned提供的profiles
tuned會(huì)預(yù)先配置的一些優(yōu)化策略,下面依次介紹下:(基于BCLinux7.3系統(tǒng)自帶的tuned 2.7.1版本,不同的版本可能會(huì)有差別,具體可以查看 /usr/lib/tuned 目錄下各策略的 tuned.conf文件確定)
tuned使用說(shuō)明
Redhat7和centos7默認(rèn)安裝并啟動(dòng)了tuned服務(wù),如果沒有的話可以手動(dòng)安裝和啟動(dòng):
# yum install tuned???? -- 安裝tuned
# service tuned start??? -- 啟動(dòng)tuned服務(wù)
# service tuned status?? -- 查看tuned狀態(tài)
對(duì)tuned的操作主要通過(guò)tuned-adm命令實(shí)現(xiàn)。
查看所有可用的profiles和當(dāng)前使用的profile:
# tuned-adm list
Available profiles:
- balanced ? ? ? ? ?- General non-specialized tuned profile
- desktop ? ? ? ? ? ? - Optmize for the desktop use-case
- latency-performance?? - Optimize for deterministic performance…………
- network-latency ? ? ? ? ? ?- Optimize for deterministic performance …………
- network-throughput ? ? - Optimize for streaming network throughput. …………
- powersave ? ? ? ?- Optimize for low power consumption
- throughput-performance?? - Broadly applicable tuning that provides…………
- virtual-guest ? ? ?- Optimize for running inside a virtual guest.
- virtual-host ? ? ? ?- Optimize for running KVM guests
Current active profile: virtual-guest
只查看當(dāng)前使用的profile:
# tuned-adm active
Current active profile: virtual-guest
切換profile:
tuned-adm profile
# tuned-adm profile balanced
# tuned-adm active
Current active profile: balanced
關(guān)閉優(yōu)化策略,關(guān)閉之后可以使用“tuned-adm profile”命令重新打開優(yōu)化策略:
# tuned-adm off
查看系統(tǒng)推薦的profile,這個(gè)優(yōu)化策略也就是安裝并啟動(dòng)tuned服務(wù)之后,tuned自動(dòng)設(shè)置使用的profile:
# tuned-adm recommend
virtual-guest
自定義profile
不同的系統(tǒng)和應(yīng)用場(chǎng)景有不同的優(yōu)化方案,tuned-adm預(yù)先配置的優(yōu)化策略不是總能滿足要求,因此tuned允許用戶自己創(chuàng)建和定制新的調(diào)優(yōu)方案。
tuned預(yù)定義的profile的配置文件在/usr/lib/tuned目錄,用戶自定義的profile目錄是/etc/tuned。
自定義調(diào)優(yōu)方案步驟很簡(jiǎn)單:
首先,在/etc/tuned目錄下創(chuàng)建一個(gè)目錄,名稱就是自定義profile的名稱;
# mkdir myProfile
# ls
active_profile? bootcmdline? myProfile? tuned-main.conf
然后,在自定義profile目錄下編寫配置文件” tuned.conf”,可以從/usr/lib/tuned復(fù)制一個(gè)預(yù)定義的配置文件過(guò)來(lái),然后進(jìn)行修改,也可以直接創(chuàng)建一個(gè);
# cd myProfile/
# ls
tuned.conf??? -- 自定義策略myProfile的優(yōu)化配置文件
一個(gè)簡(jiǎn)單的配置文件格式如下:
# more desktop/tuned.conf
#
# tuned configuration
#
[main]????? -- main段
summary=Optmize for the desktop use-case?? -- profile的介紹
include=balanced??????? -- 包含的profile,也就是基于此profile做些調(diào)整
[sysctl]??? -- sysctl子系統(tǒng)
kernel.sched_autogroup_enabled=1?? -- 需要修改的參數(shù)
最后,使用” tuned-adm list”查看,自定義的策略可以使用了。
# tuned-adm list
Available profiles:
………………
- myProfile?????????????????? - My profile for test
………………
Current active profile: virtual-guest
總結(jié)
tuned特性主要還是使用linux系統(tǒng)現(xiàn)有的一些調(diào)節(jié)手段和工具,包括電源管理工具,CPU、內(nèi)存、磁盤等內(nèi)核參數(shù)調(diào)整的方式,并將其整合到一個(gè)具體的策略(profile)中進(jìn)行系統(tǒng)的性能調(diào)節(jié)。
BC-Linux操作系統(tǒng)的用戶用戶可以根據(jù)不同的使用場(chǎng)景和需求,使用現(xiàn)有的策略或者自定義一些策略很方便的對(duì)系統(tǒng)的性能進(jìn)行設(shè)置,極大的簡(jiǎn)化對(duì)操作系統(tǒng)的性能調(diào)節(jié)。
END
往期精選
總結(jié)
以上是生活随笔為你收集整理的linux性能调优干货,【干货分享】详解Linux性能调优之tuned特性的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [云炬python3玩转机器学习]6-2
- 下一篇: Linux全能终端,【MobaXterm