vmstat簡介

vmstat是Linux下的系統工具。通過vmstat,我們可以得到進程、內存、分頁、IO、trap和CPU等信息。
 
vmstat用法:
  vmstat [-a] [n] [delay [count]]
  vmstat [-f] [-s] [-m]
  vmstat [-S unit]
  vmstat [-d]
  vmstat [-D]
  vmstat [-p disk partition]
  vmstat [-V]
 
vmstat參數:
  -a 顯示活躍內存(active memory)和非活躍內存(inactive memory)。非活躍內存是指映射到進程空間,但是當前進程沒有使用的內存。
  -f 顯示系統執行fork/vfork/clone的次數。這個值是系統創建的全部任務的數目。只顯示一次。
  -m 顯示slabinfo。
  -n 只顯示一次字段頭。
  -s 以表格形式顯示。只顯示一次。
  delay 兩次輸出之間間隔的秒數。
  count 輸出的次數。
  -d 顯示硬盤信息。只顯示一次。
  -D 顯示硬盤統計信息。只顯示一次。
  -p partition 顯示分區信息。
  -S k/K/m/M 設置單位爲1000/1024/1000000/1048576 bytes,默認爲K。
  -V 顯示版本信息。
 
VM模式(默認)輸出字段:
  procs
    r: 等待調度的進程數量(任務隊列長度)。一個經驗數值是CPU核數乘以4作爲r的閾值。超過這個值,說明CPU資源緊張。
    b: 處於非中斷睡眠(阻塞)的進程數量。說明進程在等待I/O或者進行內存交換。
  memory
    swpd: 虛擬內存容量。相對swpd值,si/so兩個值更重要。如果si/so都比較大,說明系統頻繁使用內存交換區。如果si/so都爲0,swpd值即使很大也不會影響系統性能。
    free: 空閒內存容量。
    buff: 用作緩衝區的內存容量。通常是對塊設備的讀寫緩衝區。
    cache: 用作緩存的內存容量。作爲page cached的內存數量。一般是用作文件系統緩存。如果cache很大,而bi很小,說明文件系統效率較高。文件的讀取都是在內存中完成。
    inact: 非活躍內存容量。
    active: 活躍內存容量。
  swap
    si: 每秒從硬盤交換到內存的數據容量。
    so: 每秒從內存交換到硬盤的數據容量。如果si/so長期大於0,說明系統內存不足。
  io
    bi: 每秒從設備輸入的塊數量。 在Linux下,塊的容量通常是1024字節。要查看塊的容量,可以使用stat --file-system / 或者tune2fs -l /dev/sda1。
    bo: 每秒向設備輸出的塊數量。
  system
    in: 每秒中斷數,包括時鐘中斷(clock)。
    cs: 每秒上下文切換數。
  cpu
    us: cpu執行非內核代碼的時間,包括nice時間。
    sy: cpu執行內核代碼的時間。
    id: cpu空閒時間。
    wa: cpu等待設備IO操作的時間。
    st: 操作系統在虛擬機中運行時,cpu丟失的時間。
 
硬盤模式(-d)輸出字段:
  reads
    total: 讀操作完成的總量。系統調用write返回並不意味着硬盤操作成功,參考sync和fsync。
    merged: 合併讀操作(一次硬盤I/O完成多次read)完成的總量。
    sectors: 讀取的扇區數。
    ms: 讀操作消耗的毫秒數。
  writes
    total: 寫操作完成的總量。
    merged: 實際完成的硬盤寫操作數量。
    secotrs: 寫入扇區數量。
    ms: 寫操作消耗的毫秒數。
  IO
    cur: 正在進行的I/O。
    sec: I/O操作消耗的秒數。
 
硬盤分區模式的字段
  reads: 在分區上提交的全部讀請求的數量。
  read sectors: 分區上讀取的扇區數量。
  writes: 分區上提交的全部寫請求的數量。
  requested writes: 分區上全部寫請求的數量。
 
vmstat不將自己作爲一個running process統計。執行vmstat不需要額外的權限。
 
參考:
vmstat手冊
/proc/meminfo
/proc/stat
/proc/*/stat
http://serverfault.com/questions/132088/what-can-cause-an-increase-in-inactive-memory-and-how-to-reclaim-it
http://serverfault.com/questions/29887/how-do-i-determine-the-block-size-of-an-ext3-partition-on-linux
http://serverfault.com/questions/442336/file-with-information-about-filesystem-block-size-in-linux
http://zhengdl126.iteye.com/blog/804567

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章