在紅帽Linux上部署Automatic System Tuning

luashin發表於2016-02-04

    隨著開放式平臺的推廣應用,以Linux為代表的開放式作業系統平臺越來越成為系統架構選擇的優選。作為一款成熟的作業系統,系統監控調優是Linux平臺必不可少的工具元件。歷經多個版本的Linux,已經發展出很成熟的作業系統最佳化配置策略。

    本篇主要介紹紅帽Linux環境中的Automatic System Tuning元件包。針對Linux系統不同的實際場景,採用不同的應用配置檔案Profile策略。

1、環境介紹

筆者作業系統環境為e 6.4。目前的Linux作業系統,已經可以支撐小到個人版本桌面伺服器,大到大型系統叢集環境的多種型別系統。例如:企業儲存伺服器、高網路吞吐量伺服器等等。

[root@SICS-MIGPC-DB ~]# cat /etc/-release

Red Hat Enterprise Linux Server release 6.4 (Santiago)

2、Tuned安裝

    首先可以利用yum安裝Automatic System Tuning包的程式。Yum可以自動幫助我們解決諸如包依賴、版本選擇等諸多問題,是進行安裝配置的有限選項。

   對Linux的不同發行版本來說,yum是有不同選項的。Red Hat Linux要求的比較嚴格,只有註冊了官方服務支援之後才能得到從網站下載最新rpm包的服務。對等開源版本來說,yum工具限制比較少。筆者通常的做法,是建立本地的yum資源庫,將Linux安裝盤中的rpm包放在資源庫中,根據需要進行安裝。

[root@SICS-MIGPC-DB ~]# yum install tuned

Loaded plugins: product-id, refresh-packagekit, security, subscription-manager

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

localyum                                                | 2.9 kB    00:00 ...

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package tuned.noarch 0:0.2.19-13.el6 will be installed

--> Finished Dependency Resolution

Dependencies Resolved

================================================================================

Package        Arch            Version                Repository        Size

================================================================================

Installing:

tuned          noarch          0.2.19-13.el6          localyum          94 k

Transaction Summary

================================================================================

Install      1 Package(s)

Total download size: 94 k

Installed size: 222 k

Is this ok [y/N]: yes

Downloading Packages:

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

Installing : tuned-0.2.19-13.el6.noarch                                  1/1

Verifying  : tuned-0.2.19-13.el6.noarch                                  1/1

Installed:

tuned.noarch 0:0.2.19-13.el6

Complete!

安裝之後,tuned以系統服務的形式被配置入系統。

[root@SICS-MIGPC-DB ~]# chkconfig --list | grep tuned

tuned          0:off  1:off  2:off  3:off  4:off  5:off  6:off

[root@SICS-MIGPC-DB ~]# chkconfig tuned on

[root@SICS-MIGPC-DB ~]# chkconfig --list | grep tuned

tuned          0:off  1:off  2:on    3:on    4:on    5:on    6:off

3、tuned配置使用

透過service命令,可以檢視tuned服務的狀態和啟動關閉。

[root@SICS-MIGPC-DB ~]# service tuned status

tuned is stopped

[root@SICS-MIGPC-DB ~]# service tuned start

Starting tuned: [  OK  ]

在/etc/tune-profiles目錄中,我們可以找到各種預設的Profile檔案。

[root@SICS-MIGPC-DB tune-profiles]# cd /etc/tune-profiles/

[root@SICS-MIGPC-DB tune-profiles]# ls -l

total 64

-rw-r--r-- 1 root root    7 Jul 24  2013 active-profile

drwxr-xr-x 2 root root 4096 Apr  3 13:11 default

drwxr-xr-x 2 root root 4096 Apr  3 13:11 desktop-powersave

drwxr-xr-x 2 root root 4096 Apr  3 13:11 enterprise-storage

-rw-r--r-- 1 root root 9779 Jul 24  2013 functions

drwxr-xr-x 2 root root 4096 Apr  3 13:11 laptop-ac-powersave

drwxr-xr-x 2 root root 4096 Apr  3 13:11 laptop-battery-powersave

drwxr-xr-x 2 root root 4096 Apr  3 13:11 latency-performance

drwxr-xr-x 2 root root 4096 Apr  3 13:11 sap

drwxr-xr-x 2 root root 4096 Apr  3 13:11 server-powersave

drwxr-xr-x 2 root root 4096 Apr  3 13:11 spindown-disk

drwxr-xr-x 2 root root 4096 Apr  3 13:11 throughput-performance

drwxr-xr-x 2 root root 4096 Apr  3 13:11 virtual-guest

drwxr-xr-x 2 root root 4096 Apr  3 13:11 virtual-host

其中包括諸如節能筆記本、SAP系統、虛擬主機等內容,都是Linux提供的預定義模板。

下面可以依據現有的配置模板,修改成實際需要的版本。筆者準備配置出不使用Linux Huge Page特性的配置檔案Profile。

[root@SICS-MIGPC-DB tune-profiles]# ls -l | grep enter

drwxr-xr-x 2 root root 4096 Apr  3 13:11 enterprise-storage

drwxr-xr-x 2 root root 4096 Apr  3 13:37 enterprise-storage-no-thp

進入目錄:

[root@SICS-MIGPC-DB tune-profiles]# cd enterprise-storage-no-thp/

[root@SICS-MIGPC-DB enterprise-storage-no-thp]# ls -l

total 16

-rwxr-xr-x 1 root root  314 Apr  3 13:37 ktune.sh

-rw-r--r-- 1 root root 1239 Apr  3 13:37 ktune.sysconfig

-rw-r--r-- 1 root root 1562 Apr  3 13:37 sysctl.ktune

-rw-r--r-- 1 root root  191 Apr  3 13:37 tuned.conf

修改配置內容:

[root@SICS-MIGPC-DB enterprise-storage-no-thp]# sed -ie 's,set_transparent_hugepages always,set_transparent_hugepages never', /etc/tune-profiles/enterprise-storage-no-thp/ktune.sh

[root@SICS-MIGPC-DB enterprise-storage-no-thp]# grep set_transparent_hugepages ktune.sh

set_transparent_hugepages never

啟用設定好的Profile,應用設定。

[root@SICS-MIGPC-DB enterprise-storage-no-thp]# tuned-adm profile enterprise-storage-no-thp

Stopping tuned: [  OK  ]

Switching to profile 'enterprise-storage-no-thp'

Applying deadline elevator: dm-0 dm-1 dm-2 sda [  OK  ]

Applying ktune sysctl settings:

/etc/ktune.d/tunedadm.conf: [  OK  ]

Calling '/etc/ktune.d/tunedadm.sh start': [  OK  ]

Applying sysctl settings from /etc/sysctl.conf

Starting tuned: [  OK  ]

[root@SICS-MIGPC-DB enterprise-storage-no-thp]#

判斷不使用Huge Page引數設定。

[root@SICS-MIGPC-DB enterprise-storage-no-thp]# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled

always [never]

如果需要恢復預設的設定,只需要將tuned服務關閉即可。

[root@SICS-MIGPC-DB etc]# service --status-all | grep tun

Current ktune sysctl settings:

tuned (pid  32429) is running...

從ps –ef命令中,可以看到使用的後臺程式和引數情況。

[root@SICS-MIGPC-DB ~]# ps -ef | grep tun

root      322 32642  0 14:05 pts/0    00:00:00 grep tun

root    32429    1  0 13:46 ?        00:00:00 /usr/bin/python /usr/sbin/tuned -d -c /etc/tuned.conf

從tuned執行使用的引數檔案/etc/tuned.conf上,可以看出該工具帶有監控功能。

[root@SICS-MIGPC-DB etc]# cat tuned.conf

# disable tuned

[main]

[DiskMonitor]

enabled=False

[DiskTuning]

enabled=False

[NetMonitor]

enabled=False

[NetTuning]

enabled=False

[CPUMonitor]

enabled=False

[CPUTuning]

enabled=False

tuned-adm工具使用者配置和啟用Profile檔案和資訊。

[root@SICS-MIGPC-DB ~]# tuned-adm help

Usage: tuned-adm

commands:

help                          show this help message and exit

list                          list all available and active profiles

active                        show current active profile

off                            switch off all tuning

profile         switch to given profile

[root@SICS-MIGPC-DB ~]# tuned-adm list

Available profiles:

- laptop-battery-powersave

- virtual-guest

- enterprise-storage

- desktop-powersave

- default

- throughput-performance

- spindown-disk

- sap

- enterprise-storage-no-thp

- laptop-ac-powersave

- virtual-host

- server-powersave

- latency-performance

Current active profile: enterprise-storage-no-thp

4、結論

在當前環境中,從執行維護角度已經有很多現成的工具和手段。掌握適當的方法論和工具,在正確的場合應用正確的工具,是我們運維人員應當具備的一種能力。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9034054/viewspace-1986553/,如需轉載,請註明出處,否則將追究法律責任。

相關文章