歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> Linux操作系統Vmstat命令列出的屬性詳解

Linux操作系統Vmstat命令列出的屬性詳解

日期:2017/2/27 9:50:48   编辑:更多Linux

  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對於page列,re,pi,po,cy維持於比較穩定的狀態,PI率不超過5,如果有pagin發生,那麼關聯頁面必須先進行pageout在內存相對緊張的環境下pagein會強制對不同的頁面進行steal操作。如果系統正在讀一個大批的永久頁面,你也許可以看到po和pi列會出現不一致的增長,這種情景並不一定表明系統負載過重,但是有必要對應用程序的數據訪問模式進行見檢查。在穩定的情況下,掃描率和重置率幾乎相等,在多個進程處理使用不同的頁面的情況下,頁面會更加不穩定和雜亂,這時掃描率可能會比重置率高出。

  faults列,in,sy,cs會不斷跳躍,這裡沒有明確的限制,唯一的就是這些值最少大於100 cpu列,us,sys,id和wa也是不確定的,最理想的狀態是使cpu處於100%工作狀態,單這只適合單用戶的情況下。

  如果在多用戶環境中us+sys》80,進程就會在運行隊列中花費等待時間,響應時間和吞吐量就會下降。wa>40表明磁盤io沒有也許存在不合理的平衡,或者對磁盤操作比較頻繁,vmstat各項:

procs: r-->在運行隊列中等待的進程數 b-->在等待io的進程數 w-->可以進入運行隊列但被替換的進程 memoy swap-->現時可用的交換內存(k表示) free-->空閒的內存(k表示) pages re--》回收的頁面 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_wrtn
dev3-0 30.31 1117.68 846.52 16104536 12197374
dev3-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的使用情況進行分析,比如運行如下命令:

sar -q -u 5 1

  將輸出如下:

Linux 2.4.18-18smp (builder.linux.com) 2003年03月07日
09時46分16? CPU %user %nice %system %idle
09時46分21? all 0.20 0.00 0.00 99.80
09時46分16? runq-sz plist-sz ldavg-1 ldavg-5
09時46分21? 0 91 0.00 0.00
Average: CPU %user %nice %system %idle
Average: all 0.20 0.00 0.00 99.80


Average: runq-sz plist-sz ldavg-1 ldavg-5
Average: 0 91 0.00 0.00

  由於sar命令太復雜,只有通過熟練使用才能了解每個選項的含義,對於sar輸出中每個字段的含義運行man sar命令可以得到詳細的解釋。



Copyright © Linux教程網 All Rights Reserved