張明棟



摘要:隨著企業信息化不斷深入發展,小型機的應用越來越廣泛, 因此如何充分發揮小型機的性能,減少硬件投入成本,保障企業應用系統高效、穩定、可靠運行成為重要研究課題。本文主要以IBM小型機的AIX操作系統為運行平臺,從CPU、內存及磁盤I/O三個方面,對AIX操作系統的性能分析及優化方法進行了具體的研究。
關鍵詞:AIX;性能分析;性能優化
引言
AIX系統是IBM公司基于AT&T Unix System V開發的一套類UNIX操作系統,運行在IBM公司專有的Power系列芯片的小型機上。目前,IBM小型機廣泛應用于政府、企業、銀行以及證券等領域當中,尤其很多關鍵業務系統采用IBM小型機作為服務器,因此如何針對業務系統的特點和要求將小型機的系統資源盡可能均衡地充分利用,增強系統的吞吐能力,減少響應時間成為我們必須進行研究的課題。
本文主要以IBM小型機的AIX操作系統為運行平臺,從CPU、內存及磁盤I/O三個方面,對AIX操作系統的性能分析及優化方法進行了具體的研究。
1 CPU
1.1 CPU性能分析
AIX 系統運行的硬件平臺為Power CPU。Power CPU是IBM公司設計的一款基于 RISC 架構的處理器,主要用于服務器市場的小型機平臺。CPU是系統運行的中樞大腦,重要性不言而喻。
AIX操作系統中用于CPU性能分析的工具及命令非常多,各自具有不同的特點。我們主要采用vmstat命令進行CPU運行數據的監測及分析,通過分析合理調度CPU資源,從而充分發揮CPU性能,解決CPU性能瓶頸。vmstat命令運行輸出結果,如圖1所示。
圖1 vmstat命令輸出結果
vmstat命令除了顯示CPU負載情況外,還統計了虛擬內存、內核線程、物理內存及陷阱(錯誤)的活動情況。CPU是否成為整個系統性能瓶頸,主要由r、us、sy、id、wa五列數據決定。r列,表示可運行的內核線程平均數,包括正在運行的線程和正在等待 CPU 的線程,如果這個數字大于 CPU 的數目,至少有一個線程要等待 CPU,等待 CPU 的線程越多,越有可能對系統性能產生影響,如果這個數值達到CPU數量的2至5倍,說明CPU的處理能力可能已經成為影響整個系統性能的瓶頸。us列,顯示系統中用戶操作所消耗CPU時間百分比。sy列,表示系統中系統調用所消耗CPU時間百分比。id列,表示系統中CPU空閑時間所占的百分比。wa列,表示系統等待磁盤I/O所占時間百分比。在不需要共享CPU的單用戶系統情況下,us+sy時間低于 90%,則不認為單用戶系統是 CPU 受限制的。但是,如果在一個多用戶系統中 us + sy 時間超過 80%,則進程可能要花時間在運行隊列中等待,響應時間和吞吐量會受損害。
1.2 CPU性能優化方法
當上述監測和分析結果得出CPU性能不足,就應該使用相應的優化方法對CPU性能進行優化。通常對于CPU性能優化有四種方法:
(1) 平衡系統負載。將一些消耗CPU資源的進程分散在不同的期間運行,充分利用每天的24小時。
(2) 調整進程的優先級別。系統中運行的每個進程都有一個優先級,我們可以用ps命令查看進程的優先級別,優先級別值越小,優先級越高,能占用更多的CPU時間片。用nice和renice命令可以調整進程的優先級別,使關鍵應用進程享有較高優先級,從而提高系統性能。
(3) 調整CPU時間片的大小。如果系統中運行的大多是需要占用較多CPU運行時間且中途不會因I/O掛起的程序,可以通過schedo命令增大時間片的大小,從而減少時間片的切換,提高系統性能。
(4) 增加資源。添加更多的CPU或在虛擬環境中重新配置邏輯分區。在虛擬環境,通過設置無上限分區或動態合理調整邏輯分區之間虛擬處理器數量,提高物理資源的使用率。
2內存
2.1 內存性能分析
AIX系統的內存由實際物理內存和硬盤上的交換空間組成,稱為虛擬內存。虛擬內存空間被劃分為一個個固定大小為4KB的頁面,這些頁面存在于實際物理內存或交換空間上。
當操作系統內存資源不足時,系統運行速度會顯著地變慢。對于系統內存性能分析的主要任務是監測系統配置的有限內存使用狀況以及是否存在內存使用不當而影響系統整體性能的情況。
使用svmon命令可以對內存使用狀況進行深層次的分析,從而得到當前內存使用狀態的快照信息。svmon命令運行結果,如圖2所示。
圖2 svmon運行結果
其中第一行的size列報告了內存的大小,單位是大小為4k的頁面;inuse列報告了進程所使用的內存中的頁面數,加上屬于一個已終止的進程但仍位于內存中的持久頁面的數目;free列報告了空閑列表中頁面的數目;pin列報告了內存中固定的頁面數,固定的頁面不能被調出。第二行的pg space報告了交換空間的實際使用情況,單位是大小為 4k 的頁面。通過這些參數我們可以計算出系統內存、交換空間的使用率,當使用率較高時,我們就需要進行一些優化。
2.2 內存性能優化方法
內存資源常見的問題為資源不足。資源不足有兩種,一是操作系統整體內存資源不足,二是內存資源的配置不合理。整體內存資源不足可以通過增加物理內存解決。內存資源的配置不合理通常采用以下三種方法解決:
(1) 調整內存頁面大小。內存頁面大小默認是4KB,但對于消耗大量內存的應用程序來說,分散存儲在太多頁面上可能造成影響。通過使用vmo命令調整相關參數,就可以對系統進行優化以提供大型的頁面,從而極大地提高系統性能。
(2) 調整調度策略。虛擬內存的所有頁面被分為程序頁面和文件頁面兩種類型。前者是讀入可執行程序的部分,后者為讀入文件數據的部分。通過調整minperm和maxperm兩個參數,可以平衡程序頁面和文件頁面的交換,減少程序頁面的調出,提高系統性能。
(3) 合理設置交換空間。如果交換空間的使用率高于60%,則應該增加交換空間的大小和數量,可以避免調頁空間不足導致進程掛起,提高系統運行效率。設置交換空間應遵循以下原則:大小相同、分布在不同的磁盤的中央位置。
3磁盤I/O
3.1 磁盤I/O性能分析
摩爾定律說,每過十八個月集成電路的晶體管數量會增加一倍,存儲的密度每過十二個月就會增加一倍,每過十二個月至十八個月,用戶就開始擔心自己的存儲的容量空間是否還足夠了。不過,磁盤頭旋轉讀取的速度可沒變化這么快,傳輸速率還在兆字節的級別速度上。所以很多時候,應用系統的瓶頸,出現在 I/O 層面。如何分析 I/O 的性能問題,顯得很重要。使用iostat命令,可以得到較詳細的I/O性能數據,該命令運行結果,如圖3所示。
圖3 iostat命令運行結果
%tm_act指示磁盤活動所占總時間的百分比,通常當利用率超過70%時,進程將等待的時間會比完成 I/O所必需的時間要長,我們需要把數據從繁忙的磁盤中移到空閑磁盤里,從而可以幫助減輕磁盤的瓶頸。
Kbps指示了每秒鐘多少 KB的數據被傳送(讀或寫),這是在系統報告時間間隔內 Kb_read 加上 Kb_wrtn 的總和并除以的這段時間間隔的總數的結果。
tps指示了每秒鐘磁盤傳送的次數,一次傳送是設備驅動程序級別到磁盤的一次 I/O處理請求,多重邏輯請求可以組合成單一的磁盤 I/O 請求,傳送的大小是不確定的。
Kb_read報告了在測量間隔中總的從物理卷中讀取的數據量(以KB為單位)。
Kb_wrtn顯示了在測量間隔中總的寫入物理卷中的數據量(以KB為單位)。
%tin_act,當它的使用率超過大概百分之六十到七十時,這通常表示進程開始等待I/O,這可能是即將發生的I/O問題的第一個征兆。
3.2 磁盤I/O性能優化方法
(1) 邏輯卷優化。把經常被訪問的熱點文件所在的邏輯卷移至負載相對較輕的物理卷上或通過RAID機制將文件所在邏輯卷條塊化到多個物理磁盤,以用來平衡I/O負載。
(2) 文件系統優化。對于JFS格式的預讀頁可以通過修改minpgahead和maxpgahead參數進行優化,順序預讀功能可以改進需要順序訪問超大文件時系統的性能。
(3) 磁盤I/O訪問模式優化。若應用系統進行同步I/O操作,則必須等待I/O完成之后才能繼續執行。相反,異步I/O操作在后臺運行,不會阻塞用戶的進程,這樣可以有效的提高了I/O吞吐量。
4結束語
本文通過不同的分析方法,對與AIX系統性能相關的三個主要方面分別進行了深入探討。系統優化是一項復雜、繁瑣、長期的工作,隨著企業信息化的不斷推進,應用系統的性能優化也顯得越來越重要,本文所進行的研究和提出的優化方案可以為其他企業信息化建設提供參考。
參考文獻:
[1]王育民,操作系統理論與技術,北京聯合大學學報:自然科學版.2008,22(1):41.45.
[2]于寧斌,IBM UNIX&Linux-AIX 5L系統管理技術,電子工業出版社.2003,(8).
[3]Orian,走入IBM小型機世界,電子工業出版社 .2008,(5).
[4]張冬,大話存儲一網絡存儲系統原理精解與最佳實踐,清華大學出版社.2008,(11).