Aix監控性能優化以及確定系統中的性能瓶頸是系統管理員的主要任務之一。在一個計算機系統中,CPU、內存、硬盤和網絡是影響系統性能的主要因素,因此系統性能調整也主要在於如何在這些資源中獲得某種平衡,以滿足人們對系統性能的期望。
Aix監控工具
1、iostat
iostat命令主要通過觀察物理磁盤的活躍時間以及他們的平均傳輸速度,Aix監控系統輸入/輸出設備負載。根據iostat命令產生的報告,用戶可確定一個系統配置是否平衡,並據此在物理磁盤與適配器之間更好地平衡輸入/輸出負載。
iostat工具的主要目的是通過Aix監控磁盤的利用率(tm_act字段),而探測到系統中的I/O瓶頸。iostat還可用於確定CPU問題,輔助容量規劃,並可以為最終解決I/O問題提供相關材料。vmstat和iostat聯合使用,可捕獲到確定與CPU,內存和I/O子系統有關的性能問題的必需數據。
iostat命令可產生下面四種類型的報告:
· tty和CPU利用情況
· 磁盤的利用情況
· 系統吞吐率
· 適配器吞吐率
2、netpmon
netpmon命令可以Aix監控關於網絡行為的系統事件和性能以及網絡行為對CPU的消耗。netpmon命令在指定的Aix監控周期報告網絡行為。netpmon啟動後直至發布trcstop命令終止它之前,一直在後台運行。如果使用缺省設置,trace命令將會在netpmon命令之後立即自動啟動。
另外,netpmon中還可用trcon命令選擇在後面的某個時間跟蹤。當這種跟蹤用trcstop命令終止後,netpmon命令就會輸出它的報告並退出。缺省時報告會輸出到標准輸出,需要時也可以重定向到某個文件。netpmon命令還可以在一次先前產生的跟蹤中以脫機模式使用。在這樣的情況下,需要用gennames命令產生一個文件。該文件必須在trace終止後立即產生。
所產生的報告中包括CPU使用情況、網絡設備驅動器I/O情況、互聯網絡套接字調用,以及網絡文件系統(NFS)I/O信息:
· CPU use:netpmon命令報告線程和中斷處理器對CPU的使用情況。該命令將網絡相關行為的CPU使用情況與其它行為的CPU使用情況區分開。
· Network Device Driver I/O:netpmon命令監控網絡適配器上所通過的I/O統計。
· Internet Socket Calls:netpmon命令在互聯網絡套接字上監控read,recv,recvfrom,write,send以及sendto子程序。ICMP,TCP,UDP這幾個協議的每個進程都會予以報告。
· NFS I/O:netpmon命令監控客戶NFS文件上的read和write子程序,NFS客戶上的RPC請求以及NFS服務器的read和write請求。
3、PDT(性能診斷工具)
PDT通過收集和集中各種性能、配置和可用數據自動找出性能問題。PDT評估系統的當前狀態並跟蹤系統在工作量和性能上的變化。PDT數據收集和報告很容易起用,不需要更多的管理行為。
雖然許多常見的系統性能問題都有特定性,但PDT還試圖用一些被認為性能好的系統中的通用概念來幫助它查找問題。這些概念包括:
· 資源的平衡使用
· 在限定范圍操作
· 確定的工作量趨勢
· 無錯誤操作
· 系統參數得到適當設置。
4、ps
ps命令是UNIX系統中最常見的命令,它主要顯示系統中關於進程的統計和狀態信息,如進程ID,I/O行為以及CPU利用率等。利用ps命令提供的信息,可決定一個進程運行了多長時間,進程使用了多少CPU時間,以及進程是否受系統的懲罰。還可用ps命令確定進程使用了多少內存,完成多少I/O,進程的優先級以及是誰創建了進程。
下面這幾個命令組合對於管理RS/6000 Aix系統有幫助:
(1)顯示10個消耗CPU最多的進程:
# ps aux |head -1 ;ps aux |sort -rn +2 |head –10
(2)顯示10個消耗存儲空間最多的進程:
# ps aux |head -1 ;ps aux |sort -rn +3 |head -10
(3)按順序顯示系統中受罰的進程:
#ps -eakl |head -1 ;ps -eakl |sort -rn +5
(4)按優先級順序顯示系統中的進程:
#ps -eakl |sort -n +6 |head
(5)按處理時間為順序顯示系統中的前十個進程:
#ps vx |head -1 ;ps vx |grep -v PID |sort -rn +3 |head –10
(6)按實際內存使用的多少順序顯示系統中的前十個進程:
#ps vx |head -1 ;ps vx |grep -v PID |sort -rn +6 |head –10
(7)按換入頁面的多少順序顯示系統中的前10個進程:
#ps vx |head -1 ;ps vx |grep -v PID |sort -rn +4 |head -10
5、vmstat
vmstat命令報告關於核心線程,虛擬內存,自陷(trap),磁盤以及CPU行為的統計。而且每種行為報告都被更細致地用百分比分別表示用戶態、核態、空閒以及等待磁盤I/O等情況。
內核維持了對核心線程,換頁以及中斷行為的統計數據,而vmstat命令則通過使用knlist子程序和/dev/kmen偽設備驅動器訪問這些數據。磁盤的輸入/輸出統計是通過設備驅動器維持的。對於磁盤,平均傳輸速度是通過使用活躍時間核傳輸信息數目決定的。而活躍時間百分比則是從報告期間驅動器忙的時間量計算出來的。
vmstat命令產生五種類型的報告:
· 虛存行為報告
· fork子進程情況報告
· 每個設備產生的中斷情況報告
· 匯總報告
· 輸入/輸出行為報告
6、sar
sar命令報告CPU的使用情況,I/O以及其它系統行為。sar命令可以收集,報告以及保存系統行為信息。如果沒有指定輸入文件,則sar調用sarc命令訪問系統數據。用戶可用讓cron命令運行兩個shell腳本(/usr/lib/sa/sa1和/usr/lib/sa2)以提供日統計和報表。
在crontab文件/var/spool/cron/crontabs/adm中包括了一些樣本節,用於示范cron要在何時運行這些shell腳本。以這種方式收集到的數據對於確定系統的時間周期特征和決定峰值使用時間是有用的。但要注意的是,sar命令自己運行時會產生相當數量的讀寫。因此最好在沒有工作量的情況下運行sar統計,看看sar對總的統計數字有多大的影響。
7、topas
topas命令用於Aix監控各種系統資源,如CPU的使用情況,CPU事件和隊列,內存和換頁空間的使用,磁盤性能,網絡性能以及NFS統計等。它還會報告指派給不同WLM類的進程對系統資源的消耗情況。它還能報告系統中最熱門的進程和工作量管理器(WLM)的熱門類。有關WLM類信息只有在WLM激活時才會顯示。topas命令將熱門進程定義為那些使用大量CPU時間的進程。topas命令沒有作日志的選項,所有信息都是實時的。
topas命令利用System Performance Measurement Interface(SPMI)API獲得有關信息。正是因為通過SPMI API,使系統開銷保持在最小程度。topas命令使用perfstat庫調用訪問perfstat內核擴展。
8、truss
truss命令跟蹤一個進程的系統調用、所接收的信號以及招致的機器錯。要檢查的應用程序可在truss命令的命令行中指定,也可將truss命令掛在一個或多個已經在運行的進程上。
以上這些介紹,就是我們這次要介紹Aix監控的知識。