rhel/centos 在 6.3 版本以後引入了一套新的系統調優工具 tuned/tuned-adm,其中 tuned 是服務端程式,用來監控和收集系統各個元件的資料,并依據資料提供的資訊動态調整系統設定,達到動态優化系統的目的;tuned-adm 是用戶端程式,用來和 tuned 打交道,用指令行的方式管理和配置 tuned,tuned-adm 提供了一些預先配置的優化方案可供直接使用,比如:筆記本、虛拟機、存儲伺服器等。
如果你正在使用筆記本(電池電源),想優化系統、節約電源又不想知道太多這方面的細節,就可以用 tuned/tuned-adm 這套工具并應用 laptop-battery-powersave 方案來調整和優化系統。當然不同的系統和應用場景有不同的優化方案,tuned-adm 預先配置的優化政策不是總能滿足要求,這時候就需要定制,tuned-adm 允許使用者自己建立和定制新的調優方案。

安裝和啟動 tuned:
# yum update
# yum install tuned
# service tuned start
# chkconfig tuned on
# service ktune start
# chkconfig ktune on
檢視目前優化方案:
# tuned-adm active
current active profile: default
service tuned: enabled, running
service ktune: enabled, running
檢視預先配置好的優化方案:
# tuned-adm list
available profiles:
- laptop-battery-powersave
- virtual-guest
- desktop-powersave
- sap
- server-powersave
- virtual-host
- throughput-performance
- enterprise-storage
- laptop-ac-powersave
- latency-performance
- spindown-disk
- default
如果伺服器是虛拟機母機的話,可以選用 virtual-host 方案優化。如果報錯 “kernel.sched_migration_cost” is an unknown key 可以通過編輯 sysctl.ktune 這個檔案解決。
# tuned-adm profile virtual-host
reverting to saved sysctl settings: [ ok ]
calling '/etc/ktune.d/tunedadm.sh stop': [ ok ]
reverting to cfq elevator: sda sdb sdc sdd sde sdf sdg [ ok ]
stopping tuned: [ ok ]
switching to profile 'virtual-host'
applying deadline elevator: sda sdb sdc sdd sde sdf sdg [ ok ]
applying ktune sysctl settings:
/etc/ktune.d/tunedadm.conf: [failed]
error: "kernel.sched_migration_cost" is an unknown key
calling '/etc/ktune.d/tunedadm.sh start': [ ok ]
applying sysctl settings from /etc/sysctl.conf
starting tuned: [ ok ]
# vi /etc/tune-profiles/virtual-host/sysctl.ktune
...
#kernel.sched_migration_cost = 5000000
如果是企業存儲伺服器的話,可以用 enterprise-storage 方案:
# tuned-adm profile enterprise-storage
switching to profile 'enterprise-storage'
applying deadline elevator: dm-0 sda sdb sdc sdd [ ok ]
/etc/ktune.d/tunedadm.conf: [ ok ]
上面預定的方案不是總能滿足要求,如果有自己的需求可以定制自己的方案。自己定制很容易,切換到優化方案的配置目錄,拷貝一個例子,然後編輯裡面的相關參數就可以了,使用 tuned-adm list 指令會看到剛建立的新方案 my-virtual-host:
# cd /etc/tune-profiles/
# cp -r virtual-host my-virtual-host
# vi my-virtual-host/*
- my-virtual-host
current active profile: virtual-host
----------------------------------------------------------------------------------------------------------------------------