Linux/AIX系統實用監控命令

Linux/UNIX系統提供了一些有用的監控命令如:iostat,vmstat,ps,sar,通過它們系統管理員可以方便地監測系統資源是否平衡並解決性能問題。本文闡述了這些命令的使用方法,並以AIX系統爲例附加應用實例。爲Linux/AIX系統管理員提供參考。

Linux/AIX系統實用監控命令

  iostat

iostat命令主要通過物理磁盤的活躍時間及它們的平均傳輸速度,監控系統輸入/輸出設備負載。根據iostat命令產生的報告,用戶可確定一個系統配置是否平衡,並據此在物理磁盤與適配器之間更好的平衡輸入/輸出負載,從而在用戶注意到服務器運行緩慢之前提早發現輸入/輸出緩慢的問題。

iostat工具的主要目的是通過監控磁盤的利用率(tm_act字段),檢測系統的I/O瓶頸。此外,還可用於確定CPU問題,輔助容量規劃。vmstat和iostat聯合使用,可獲得與CPU,內存和I/O子系統有關的性能問題的必需數據。

下圖是AIX系統iostat命令輸出:

iostat命令可產生如下四種類型的報告:

tty和CPU利用情況

磁盤利用情況

系統吞吐率

適配器吞吐率

% tm_act:物理磁盤活動的時間百分比

Kbps:某塊磁盤傳輸數據的總量(讀或寫)

tps:某塊物理磁盤每秒鐘 IO 傳輸的數量

Kb_read:從磁盤上讀取數據的總量

Kb_wrtn:寫入磁盤的數據總量

  vmstat

vmstat命令報告關於核心線程,虛擬內存,自陷(trap),磁盤以及CPU行爲的統計。而且每種行爲報告都被更細緻地用百分比分別表示用戶態、核態、空閒以及等待磁盤I/O等情況。 內核維持了對核心線程,換頁以及中斷行爲的統計數據,而vmstat命令則通過使用knlist子程序和/dev/kmen僞設備驅動器訪問這些數據。磁盤的輸入/輸出統計是通過設備驅動器維持的。對於磁盤,平均傳輸速度是通過使用活躍時間核傳輸信息數目決定的。而活躍時間百分比則是從報告期間驅動器忙的時間量計算出來的。

下圖是AIX系統vmstat命令輸出:

vmstat命令產生五種類型的報告:

虛存行爲報告

fork子進程情況報告

每個設備產生的中斷情況報告

彙總報告

輸入/輸出行爲報告

page:頁面調入調出的數量

wa:等待I/O的時間

avm:活動虛擬頁面,在進程運行中分配到工作段的頁面空間數,單位爲4K

fre:空閒列表的數量.一般不少於120,當fre少於120時,系統開始自動的kill進程去釋放free list

  PS

ps命令是UNIX系統中最常見的命令,它主要顯示系統中關於進程的統計和狀態信息,如進程ID,I/O行爲以及CPU利用率等。利用ps命令提供的信息,可決定一個進程運行了多長時間,進程使用了多少CPU時間,以及進程是否受系統的懲罰。還可用ps命令確定進程使用了多少內存,完成多少I/O,進程的優先級以及是誰創建了進程。下面這幾個命令組合對於管理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

下圖是AIX系統ps命令輸出:

  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對總的統計數字有多大的影響。

  顯示內容包括:

%usr:CPU處在用戶模式下的時間百分比

%sys:CPU處在系統模式下的時間百分比

%wio:CPU等待輸入輸出完成時間的百分比

%idle:CPU空閒時間百分比

physc:消耗物理處理器的數目,只在共享處理器或啓用同時多線程的分區上報告

在所有的顯示中,我們應主要注意%wio和%idle,%wio的值過高,表示硬盤存在I/O瓶頸,%idle值高,表示CPU較空閒,如果%idle值高但系統響應慢時,有可能是CPU等待分配內存,此時應加大內存容量。%idle值如果持續低於10,那麼系統的CPU處理能力相對較低,表明系統中最需要解決的資源是CPU。