在了解AIX系統中並行多線程的設置以後,用戶需要得到不同時間段內處理器的使用狀態。為此 AIX系統提供了豐富的系統接口。用戶可以根據不同的情況選用他們,檢查和判斷系統中 CPU 的運行狀態。本文僅以 lparstat 和 mpstat 為例進行說明。
lparstat 命令
使用了 lparstat。這個命令可以在各種AIX系統環境,如負載分區中使用,得到當前系統的配置和部分運行狀態,其中的部分內容與 CPU 直接相關。在 AIX 6.1 操作系統中,lparstat 也可以用來顯示負載分區 (Workload Partition) 的信息,比如負載分區使用的 CPU 資源。用戶可以查閱手冊得到該命令的詳細說明。
lparstat 命令非常適合獲得當前AIX系統或分區的配置信息,但是用來監控 CPU 負載有兩個主要的不足。首先這條命令不能得到單個處理器的負載情況,所以不能用來直接確定多處理器負載不均的問題;其次這條命令在 AIX 6.1 系統上的支持的參數與 5.3 相比變化較大。所以本文主要介紹 mpstat 命令,用於檢測 AIX 系統中的 CPU 狀態。
mpstat 命令
與 lparstat 命令相似,mpstat 可以自動識別當前的AIX系統設置,比如是否開啟了 SMT 功能。與 lparstat 不同的是,mpstat 可以得到詳細的單個處理器的運行狀況。
該命令檢測系統中全部處理器的利用情況,並且給出各項的總和。下面是幾個常用的輸出項
lcpu: 工作的邏輯處理器的個數
us: 運行的用戶程序所占用的 CPU 百分比
sy: 運行的內核程序所占用的 CPU 百分比
wa: CPU 用來等待 IO 所占用的百分比
id: CPU 空閒且不等待 IO 所占用的百分比
通常情況下,CPU0 的負載會略高於其他處理器。在其他處理器負載相差不多而且 CPU0 的負載不太高的情況下,可以認為是正常的情況。反之則可能存在AIX系統或應用程序上的分配問題。
在顯示的內容中,如果 wa 的值過高,則表示應用程序有過多的時間等待 IO 操作,外存的訪問存在性能瓶頸。如果 id 的值如果持續低於 30,而且 wa 不高,則表明CPU 比較繁忙 , 可以考慮對應用程序進行優化。如果是微分區或負載分區AIX系統中,應當考慮是否需要分配更多的處理器資源。
mpstat 命令提供了參數,可以周期性的檢測並匯報AIX系統狀態。在 mpstat 命令的輸出滿足用戶需要的情況下,用戶可以指定合適的間隔並以後台運行 mpstat,以實現對系統 CPU 的持續監控。下面的命令會在一天的時間內每隔半小時自動搜集一次系統信息。
mpstat 1800 48 > /tmp/mpstat_output &
用戶可以有策略的檢查輸出文件中的內容,以確定AIX系統的運行狀態。