天天看點

優化 AIX 6.1 的性能優化 AIX 6.1 的性能

優化方法、一般增強、監視和優化

當您剛剛認為自己掌握了有關 AIX Version 5.3 性能優化方面的内容時,很快就釋出了 AIX 6.1,這無疑又給您出了一道難題。在本文中,将介紹關于 AIX 6.1 中 CPU、虛拟記憶體和 I/O(磁盤和網絡)等方面的性能監視和優化的最新更改。實際上,其中的許多更改并沒有對核心進行多少創新,而是更關注于一些輔助的内容,比如對預設參數進行改進,以便更精确地反映實際的資料處理。還有一些其他的增強,包括唯一的可調參數的文檔說明、受限制的可調參數,以及對某些子系統所做的各種其他改進。您将了解更多有關性能優化方法的資訊,而這些内容是任何優化政策所必需的部分。

在 IBM Bluemix 雲平台上開發并部署您的下一個應用。

AIX 6.1 提供了許多重要的創新和改進,具體包括下面的内容:

虛拟化——諸如工作負載分區(WPAR)和動态應用程式遷移(Live Application Mobility)等特性

安全性——諸如加密檔案系統和受信任的 AIX,以及基于角色的通路控制 (RBAC) 等特性

可用性——諸如 AIX 并發更新和動态跟蹤等特性

可管理性——諸如新的 Systems Director Console for AIX 和工作負載分區管理器等特性

它還支援 POWER6 的性能創新,如進階同步多線程 (SMT)、共享的專用處理器和可變的頁面大小。需要充分地了解哪些創新和增強來源于 POWER6、AIX 6.1,或者來源于它們的組合。例如,純粹從作業系統的角度來看,AIX 改進了以前預設的一些可調參數,具體包括:

<code>vmo</code>

<code>ioo</code>

<code>aio</code>

<code>no</code>

<code>nfso</code>

<code>schedo</code>

盡管在 AIX 6.1 中的确存在一些性能增強,比如在 I/O 處理速率和 AIX 的 AIO 伺服器實作方面所做的改進,但是并沒有很大的變化。事實上,與從 AIX 5.3 更新到 AIX 6.1 相比,從 AIX 5.1 更新到 AIX 5.2 以及從 5.2 更新到 5.3(包括新的監視工具、優化工具、更改了虛拟記憶體管理器 (VMM) 設定方式的新的可調參數,以及并發 I/O 的改進)所做的性能改進要更多一些。在 AIX 6.1 中,除了已經删除的一些指令(I.E. 和 aioo)之外,所有的優化指令都保持不變,并且也沒有提供任何新的監視工具。對一些實用工具所做的其他更改反映了對其他的工作負載分區創新的支援,具體包括:

curt

filemon

iostat

netpmon

pprof

procmon

proctree

svmon

topas

tprof

vmstat

工作負載分區 (WPAR) 允許在一個 AIX 映像中使用多個獨立的虛拟分區。這更多地是對邏輯分區 (LPAR) 的一種補充,而不是對它們的替代。實際上,WPAR 運作于 LPAR 之中,并且從概念上看,與 Solaris 的 containers 非常類似。我在 15 分鐘之内就完成了 WPAR 的建構;事實上,您将在 WPAR 中完成相關的分析工作,以便可以實際地觀察經過更新的、支援 WPAR 的一些工具。請注意,隻有在 AIX 6.1 中才能使用 WPAR,而 POWER6 對于 WPAR 則不是必需的。在 WPAR 中,某些指令的運作方式有所不同、或者根本不能運作,将在适當的時候對其中的部分指令進行介紹。還有一些其他的 AIX 6.1 性能改進,包括唯一的可調參數的文檔說明,以及受限制的可調參數。

這個部分将對一種優化方法進行概述,您可以使用這種方法來優化您的系統。雖然您可以不使用這種方法,因為還存在許多其他的方法可供使用,但是您應該使用某種優化方法或者結構化的程式。

這種方法由下面五個步驟組成:

建立基準

壓力測試和監視

确定瓶頸

優化瓶頸

重複(從第二個步驟開始)

讓我們更深入地了解這些步驟:

建立基準——在您進行優化或者開始進行監視之前,必須建立一個基準。這個基準是系統正常運作時的一個快照。這個基準不僅應該捕獲性能類型的統計資訊,還應該記錄系統的實際配置(記憶體總量、CPU 和磁盤)。這一點是很重要的,因為在對使用者反映的性能問題進行故障診斷之前,您需要了解系統正常運作時的情形。這樣做可以幫助您将資料轉化為服務水準協定 (SLA),進而解決客戶所面臨的問題。

壓力測試和監視——使用峰值工作負載,對系統進行監視和壓力測試。這時,您應該使用一些監視工具以幫助證明您的發現。監視部分是非常關鍵的,因為如果沒有系統運作情況(特别是在壓力測試期間)的精确曆史記錄,您将無法有效地進行優化。

識别瓶頸——壓力測試和監視系統的目的是為了确定瓶頸。在沒有正确診斷資訊的情況下,您不可能提出正确的對策。如果系統碰到了 CPU 限制,那麼您可以運作一些附加的工具,如 trace、curt、splat、tprof 和 ps,以便進一步确定導緻瓶頸的實際程序。

優化瓶頸——在您最終确定了瓶頸之後,接着應該對其進行優化。具體的瓶頸将決定您需要進行的優化工作,例如,CPU、虛拟記憶體或者 I/O。某些子系統更适合于進行主動優化,如虛拟記憶體和使用 <code>vmo</code>,而要解決 CPU 類型的瓶頸,通常需要更有效地管理工作負載、或者為系統配置設定更多資源(使用動态邏輯分區 (DLPAR)、無上限的分區、或者分區負載管理器)。

重複——從這個過程的第二個步驟開始,再次執行這個過程。隻有通過重複進行測試,并且以一緻地方式對您的系統進行監視,才能夠确定優化工作是否真正地産生了效果。

這個部分将介紹虛拟記憶體子系統中的一些更改。

多年以來,許多使用者都抱怨 AIX 的一些預設參數。這些抱怨不僅反映了大多數運作 AIX 的使用者所碰到的真實情況,例如,像 Oracle 這樣的關鍵任務型資料庫應用程式。正因為這一點,系統管理者不得不更改許多子系統中的設定,特别是虛拟記憶體子系統(換句話說,即 <code>minperm</code> 和 <code>maxperm</code>)。出于對這種現實情況的考慮,IBM 聽取了使用者的意見,并且對這些參數進行了更改。還應該說明的一點是,您不應該僅僅依賴于這些設定,而應該始終咨詢您的獨立軟體供應商 (ISV) 以驗證他們所推薦的設定是針對 AIX 6.1 的、并進行了相應更改。

類型

AIX 5.3

AIX 5.3 優化  更改建議

AIX 6.1

受限制

cpu_scale_memp = 8

8

data_stagger_interval = 161

161

defps = 1

1

force_relalias_lite = 0

framesets = 2

2

不再可用

htabscale = n/a

n/a

kernel_heap_psize = 4096

4096

kernel_psize = 4096

65536

large_page_heap_size = 0

lgpg_regions = 0

lgpg_size = 0

low_ps_handling = 1

lru_file_repage = 1

lru_poll_interval = 10

10

lrubucket = 131072

131072

maxclient% = 80

80

90

maxfree = 1088

1088

maxperm = 598781

598781

442683

maxperm% = 80

maxpin = 635249

635249

423471

maxpin% = 80

mbuf_heap_psize = 65536

64436

memory_affinity = 1

memory_frames = 786432

786432

524288

memplace_data = 2

memplace_mapped_file = 2

memplace_shm_anonymous = 2

memplace_shm_named = 2

memplace_stack = 2

memplace_text = 2

memplace_unmapped_file = 2

mempools = 5

5

minfree = 960

960

minperm = 149694

149694

14756

minperm% = 20

20

3

nokilluid = 0

npskill = 3072

3072

npsrpgmax = 24576

24576

8192

npsrpgmin = 18432

18432

6144

npsscrubmax = 24576

npsscrubmin = 18432

npswarn = 12288

12288

num_spec_dataseg = 0

numpsblks = 393216

393216

page_steal_method = 0

pagecoloring = n/a

pinnable_frames = 675516

675516

349814

pta_balance_threshold = n/a

relalias_percentage = 0

rpgclean = 0

rpgcontrol = 2

scrub = 0

scrubclean = 0

soft_min_lgpgs_vmpool = 0

spec_dataseg_int = 512

512

strict_maxclient = 1

strict_maxperm = 0

v_pinshm = 0

vm_modlist_threshold = -1

-1

vmm_fork_policy = 1

vmm_mpsize_support = 1

vmm_default_pspa

最重要的即時可用的性能值,包括新值:

<code>minperm</code>

<code>maxperm</code>

<code>maxclient</code>

<code>strict_maxclient</code>

在 WPAR 中,有些更改将不起作用。雖然 WPAR 是 LPAR 的子集,但它們仍然是單獨的作業系統映像的一部分。

另一項重要的更改包括 VMM 動态可變頁面大小支援 (VPSS)。頁面定義為固定長度的資料塊,并且儲存在虛拟記憶體中。在 AIX 6.1 中(僅在 POWER6 處理器中),VMM 現在可以根據應用程式的記憶體使用情況,動态地使用較大的頁面大小,而這将顯著地提高性能。這個特性對于應用程式來說是完全透明的。如果不會導緻程序記憶體使用量的增加,那麼 AIX 将僅使用較大的頁面大小。使用較大的頁面将提高性能,因為需要進行的硬體位址轉換工作将更少。僅支援在工作存儲記憶體中(不支援在持久的存儲中)進行這項工作。新的參數是 <code>vmm_default_pspa</code>(它還可以與 <code>vmm_mpsize_support</code> 可調參數一同使用)。

讓我們檢視以下 VPSS 可調參數的設定。

這個部分将着重介紹 CPU 子系統中的更改。

這個部分将概述磁盤 I/O 子系統中的更改。

現在,對增強的日記記錄檔案系統 (JFS2) 進行了相應的更改,這些更改允許您在不進行日志記錄的情況下挂載 JFS2 檔案系統。雖然這可以顯著地提高性能,但我們并不建議進行這項操作。如果您需要恢複您的資料,那麼您必須使用讨厭的 <code>fsck</code>,在日記記錄檔案系統出現以後,幾乎已經很少使用這個工具了。一些有用的情況可以幫助您從備份中恢複資料,并且在某些活動(您可能具有很小的視窗,并且不需要考慮可用性)期間節約時間。

現在可以在千兆以太網擴充卡上使用 target 軟體驅動程式,這可以提高該類環境中的性能。target  驅動程式将本地磁盤或者邏輯卷導出到使用 iSCSI 協定連接配接到 AIX 的 iSCSI initiators 方。廣泛地使用 iSCSI 是基于光纖存儲的可行備選方法,進而使其成為一項重要的增強。

磁盤 I/O 處理速率是允許您限制檔案挂起 I/O 請求數目的一種機制。它所起到的作用是,防止磁盤 I/O 密集型程序(通常以大量的、順序的方式進行寫入)耗盡 CPU。在預設情況下,AIX 6.1 啟用了 I/O 處理速率。在 AIX 5.3 中,您需要顯式地啟用這個特性。它進行這項工作的方式是分别将 <code>minpout</code> 和 <code>maxput</code> 參數的 <code>sys0</code> 設定為 4096 和 8193:

AIO 是一個 AIX 軟體子系統,它允許程序在無需等待 I/O 完成的情況下發起 I/O 操作。因為 I/O 操作和應用程式的處理工作并發地運作,是以它們本質上都在背景運作,并且能夠提高性能。在資料庫環境中,這一點是特别重要的。一共有兩種類型的 AIX 子系統:Legacy AIO 和 POSIX AIO。它們之間的差別包括在應用程式層傳遞的不同參數。換句話說,開發人員可以挑選該應用程式所使用的實作。無論選擇哪個子系統,它們都将在 AIX 中并發地運作。在 AIX 5L 中,如果應用程式使用 AIO,那麼将需要使用 <code>autoconfig</code> 參數顯式地激活這個子系統。因為需要加載核心擴充,是以還需要重新啟動系統。事實上,如果對下面這些可調參數進行了任何更改的話,那麼 AIX 5.3 TL5 之前的任何發行版都需要重新啟動:

<code>maxreqs</code>

<code>maxservers</code>

<code>minservers</code>

在 AIX 5.3 中,您還可以使用 <code>aioo</code> 指令,該指令允許您在不重新啟動的情況下(減少所需的重新啟動),動态地進行這些更改。有一點應該注意,該指令并不會更改對象資料管理器 (ODM) 的屬性,這意味着在重新啟動之後它們将無法保持。

<code>fastpath</code>:将原始邏輯卷直接傳遞到磁盤層的 AIO 請求。

<code>fsfastpath</code>:将在 JFS2 中使用并發 I/O 打開的檔案直接傳遞到 LVM 或者磁盤的 AIO 請求。

還需要說明的是,ODM 中不再包含 AIO 裝置。

這個部分将概述網絡 I/O 子系統(包括 NFS)中的更改。

還引入了一個新的網絡緩存守護程序,以便在使用 DNS 進行解析時提高性能。

這個守護程序可以從系統資源控制器 (SRC) 進行啟動。

關于 /etc/netsvc.conf 檔案,沒有進行任何更改;在确定解析順序時,仍然需要使用這個檔案。

其中唯一值得注意的更改是,現在在預設情況下啟用了 RFC1323(位于 TC/IP 堆棧),這允許 TCP 連接配接為任何 NFS 連接配接使用 TCP 擴充視窗。而且,對于每個 NFS V3 挂載點來說,<code>biod</code> 守護程序的預設數目現在已經增加到了 32。

AIX 6.1 提供了許多創新,比如 WPAR 的使用和動态應用程式可用性。它還針對性能優化提供了許多改進。其中一些比較重要的更改包括改進預設參數以便更精确地反映實際資料處理工作、唯一的可調參數的文檔說明、受限制的可調參數的整合,以及對 I/O 處理速率和 AIO 伺服器的增強。AIX 6.1 非常出色,但也不要忘記,在 IBM 的世界裡,AIX 6.1 是新的 6.0。您也知道,與 AIX 5.1 相比,AIX 5.2 更加優秀、也更加穩定。在進行作業系統更新之前需要考慮到方方面面的問題,但是如果您的應用程式能夠完全支援它,并且您認為這些創新非常重要,以至于有必要進行更新操作,那麼請不要遲疑。

原文位址:https://www.ibm.com/developerworks/cn/aix/library/au-aix6tuning/index.html

本文轉自xiaocao1314051CTO部落格,原文連結: http://blog.51cto.com/xiaocao13140/1942372,如需轉載請自行聯系原作者