標籤:
Procs  r: 等待啟動並執行進程數 b: 處在非中斷睡眠狀態的進程數 w: 被交換出去的可啟動並執行進程數。此數由 linux 計算得出,但 linux 並不耗盡交換空間
  Memory  swpd: 虛擬記憶體使用方式,單位:KB  free: 閒置記憶體,單位KB  buff: 被用來做為緩衝的記憶體數,單位:KB
  Swap  si: 從磁碟交換到記憶體的交換頁數量,單位:KB/秒  so: 從記憶體交換到磁碟的交換頁數量,單位:KB/秒
  IO  bi: 發送到塊裝置的塊數,單位:塊/秒  bo: 從塊裝置接收到的塊數,單位:塊/秒
  System  in: 每秒的中斷數,包括時鐘中斷  cs: 每秒的環境(上下文)切換次數
  CPU  按 CPU 的總使用百分比來顯示  us: CPU 使用時間  sy: CPU 系統使用時間  id: 閑置時間  准測  r<5,b≈0,
  如果fre<minfree,將會出現連續不斷的頁面調度,將導致系統效能問題。
  對於page列,re,pi,po,cy維持於比較穩定的狀態,PI率不超過5,如果有pagin發生,那麼關聯頁面必須先進行pageout在記憶體相對緊張的環境下pagein會強制對不同的頁面進行steal操作。如果系統正在讀一個大批的永久頁面,你也許可以看到po和pi列會出現不一致的增長,這種情景並不一定表明系統負載過重,但是有必要對應用程式的資料訪問模式進行見檢查。在穩定的情況下,掃描率和重設率幾乎相等,在多個進程處理使用不同的頁面的情況下,頁面會更加不穩定和雜亂,這時掃描率可能會比重設率高出。</minfree,將會出現連續不斷的頁面調度,將導致系統效能問題。  faults列,in,sy,cs會不斷跳躍,這裡沒有明確的限制,唯一的就是這些值最少大於100 cpu列,us,sys,id和wa也是不確定的,最理想的狀態是使cpu處於100%工作狀態,單這隻適合單使用者的情況下。
如果在多使用者環境中us+sys》80,進程就會在運行隊列中花費等待時間,回應時間和輸送量就會下降。wa>40表明磁碟io沒有也許存在不合理的平衡,或者對磁碟操作比較頻繁,vmstat各項:
 
  
   procs:r-->在運行隊列中等待的進程數b-->在等待io的進程數w-->可以進入運行隊列但被替換的進程memoyswap-->現時可用的交換記憶體(k表示)free-->閒置記憶體(k表示)pagesre--》回收的頁面mf--》非嚴重錯誤的頁面pi--》進入頁面數(k表示)po--》出頁面數(k表示)fr--》空餘的頁面數(k表示)de--》提前讀入的頁面中的未命中數sr--》通過時鐘演算法掃描的頁面disk 顯示每秒的磁碟操作。 s表示scsi盤,0表示盤號fault 顯示每秒的中斷數in--》裝置中斷sy--》系統中斷cy--》cpu交換cpu 表示cpu的使用狀態cs--》使用者進程使用的時間sy--》系統進程使用的時間id--》cpu閒置時間   | 
  
 
   如果 r經常大於 4 ,且id經常少於40,表示cpu的負荷很重。 
  如果pi,po 長期不等於0,表示記憶體不足。 
  如果disk 經常不等於0, 且在 b中的隊列 大於3, 表示 io效能不好。  Linux在具有高穩定性、可靠性的同時,具有很好的延展性和擴充性,能夠針對不同的應用和硬體環境調整,最佳化出滿足當前應用需要的最佳效能。因此企業在維護Linux系統、進行系統調優時,瞭解系統效能分析工具是至關重要的。
  在Linux下有很多系統效能分析工具,比較常見的有top、free、ps、time、timex、uptime等。下文將介紹幾個較為重要的效能分析工具vmstat、iostat和sar及其使用。 
 
  用vmstat監視記憶體使用量情況 
  vmstat是Virtual Meomory Statistics(虛擬記憶體統計)的縮寫,可對作業系統的虛擬記憶體、進程、CPU活動進行監視。它是對系統的整體情況進行統計,不足之處是無法對某個進程進行深入分析。 
  vmstat的文法如下:
 
  
   |   vmstat [-V] [-n] [delay [count]] | 
  
 
  其中,-V表示列印出版本資訊;-n表示在周期性迴圈輸出時,輸出的頭部資訊僅顯示一次;delay是兩次輸出之間的延遲時間;count是指按照這個時間間隔統計的次數。對於vmstat輸出各欄位的含義,可運行man vmstat查看。 
 
  用iostat監視I/O子系統情況 
  iostat是I/O statistics(輸入/輸出統計)的縮寫,iostat工具將對系統的磁碟操作活動進行監視。它的特點是彙報磁碟活動統計情況,同時也會彙報出CPU使用方式。同vmstat一樣,iostat也有一個弱點,就是它不能對某個進程進行深入分析,僅對系統的整體情況進行分析。 
  iostat的文法如下: 
 
  
   | iostat [ -c | -d ] [ -k ] [ -t ] [ -V ] [ -x [ device ] ] [ interval [ count ] ] | 
  
 
  其中,-c為彙報CPU的使用方式;-d為彙報磁碟的使用方式;-k表示每秒按kilobytes位元組顯示資料;-t為列印彙報的時間;-v表示列印出版本資訊和用法;-x device指定要統計的裝置名稱,預設為所有的裝置;interval指每次統計間隔的時間;count指按照這個時間間隔統計的次數。 
 
  iostat一般的輸出格式如下: 
 
 
  
   | Linux 2.4.18-18smp (builder.linux.com)  2003年03月07日 avg-cpu:  %user   %nice    %sys   %idle           4.81    0.01    1.03   94.15 Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtndev3-0           30.31      1117.68       846.52   16104536   12197374dev3-1            7.06       229.61        40.40    3308486     582080 | 
  
 
  對於輸出中各欄位的含義,iostat的協助中有詳細的說明。 
  使用sar進行綜合分析 
  表1 sar參數說明 
  選項 功能 
  -A 匯總所有的報告 
  -a 報告檔案讀寫使用方式 
  -B 報告附加的緩衝的使用方式 
  -b 報告緩衝的使用方式 
  -c 報告系統調用的使用方式 
  -d 報告磁碟的使用方式 
  -g 報告串口的使用方式 
  -h 報告關於buffer使用的統計資料 
  -m 報告IPC訊息佇列和訊號量的使用方式 
  -n 報告命名cache的使用方式 
  -p 報告調頁活動的使用方式 
  -q 報告運行隊列和交換隊列的平均長度 
  -R 報告進程的活動情況 
  -r 報告沒有使用的記憶體頁面和硬碟塊 
  -u 報告CPU的利用率 
  -v 報告進程、i節點、檔案和鎖表狀態 
  -w 報告系統交換活動狀況 
  -y 報告TTY裝置活動狀況 
  sar是System Activity Reporter(系統活動情況報告)的縮寫。顧名思義,sar工具將對系統當前的狀態進行取樣,然後通過計算資料和比例來表達系統的當前運行狀態。它的特點是可以連續對系統取樣,獲得大量的取樣資料;取樣資料和分析的結果都可以存入檔案,所需的負載很小。sar是目前Linux上最為全面的系統效能分析工具之一,可以從14個大方面對系統的活動進行報告,包括檔案的讀寫情況、系統調用的使用方式、串口、CPU效率、記憶體使用量狀況、進程活動及IPC有關的活動等,使用也是較為複雜。 
  sar的文法如下: 
 
  
   | sar [-option] [-o file] t [n] | 
  
 
  它的含義是每隔t秒取樣一次,共取樣n次。其中-o file表示取樣結果將以二進位形式存入檔案file中。 
  另一種文法如下: 
 
  
   | sar [-option] [-s time] [-e time] [-i sec] [-f file] | 
  
 
  含義是表示從file檔案中取出資料,如果沒有指定-f file,則從標準資料檔案/var/adm/sa/sadd取資料,其中dd表示當前天。另外,-s time表示起始時間;-e time表示停止時間;-i sec表示取樣的時間間隔,如果不指定則表示取檔案中所有的資料。對於具體的選項參見表1。 
 
  一般它與-q和-u聯合使用,以便對每個CPU的使用方式進行分析,比如運行如下命令: 
  將輸出如下: 
 
  
   | Linux 2.4.18-18smp (builder.linux.com)        2003年03月07日 09時46分16?      CPU     %user     %nice   %system     %idle09時46分21?      all      0.20      0.00      0.00     99.80 09時46分16?  runq-sz  plist-sz   ldavg-1   ldavg-509時46分21?        0        91      0.00      0.00 Average:          CPU     %user     %nice   %system     %idleAverage:          all      0.20      0.00      0.00     99.80 Average:      runq-sz  plist-sz   ldavg-1   ldavg-5Average:            0        91      0.00      0.00 | 
  
 
  由於sar命令太複雜,只有通過熟練使用才能瞭解每個選項的含義,對於sar輸出中每個欄位的含義運行man sar命令可以得到詳細的解釋。
vmstat,iostat,sar命令詳解