歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> Unix基礎知識

Unix系統:Unixvmstat命令詳解寶典

  在一個多CPU系統中,vmstat統計所有個數的CPU的平均輸出.為每個進程進行統計.沒有參數時,vmstat顯示每一行是自從系統啟動以後的虛擬內存的活動情況.

  vmstat 的語法我們可以通過linux的man 命令來查看。

  將man 的結果導入到指定的文本

  # man vmstat|col -b > /u01/tianlesoftware.txt

  查看vmstat 用法

  # man vmstat

  VMSTAT(8) Linux Administrator’s Manual VMSTAT(8)

  NAME

  vmstat - Report virtual memory statistics

  SYNOPSIS

  vmstat [-a] [-n] [delay [ count]]

  vmstat [-f] [-s] [-m]

  vmstat [-S unit]

  vmstat [-d]

  vmstat [-p disk partition]

  vmstat [-V]

  DESCRIPTION

  vmstat reports information about processes, memory, paging, block IO,

  traps, and cpu activity.

  The first report produced gives averages since the last reboot. Addi-

  tional reports give information on a sampling period of length delay.

  The process and memory reports are instantaneous in either case.

  Options

  The -a switch displays active/inactive memory, given a 2.5.41 kernel

  or better.

  The -f switch displays the number of forks since boot. This includes

  the fork, vfork, and clone system calls, and is equivalent to the

  total number of tasks created. Each process is represented by one or

  more tasks, depending on thread usage. This display does not repeat.

  The -m displays slabinfo.

  The -n switch causes the header to be displayed only once rather than

  periodically.

  The -s switch displays a table of various event counters and memory

  statistics. This display does not repeat.

  delay is the delay between updates in seconds. If no delay is speci-

  fied, only one report is printed with the average values since boot.

  count is the number of updates. If no count is specified and delay is

  defined, count defaults to infinity.

  The -d reports disk statistics (2.5.70 or above required)

  The -p followed by some partition name for detailed statistics (2.5.70

  or above required)

  The -S followed by k or K or m or M switches outputs between 1000,

  1024, 1000000, or 1048576 bytes

  The -V switch results in displaying version information.

  FIELD DESCRIPTION FOR VM MODE

  Procs

  r: The number of processes waiting for run time.

  b: The number of processes in uninterruptible sleep.

  Memory

  swpd: the amount of virtual memory used.

  free: the amount of idle memory.

  buff: the amount of memory used as buffers.

  cache: the amount of memory used as cache.

  inact: the amount of inactive memory. (-a option)

  active: the amount of active memory. (-a option)

  Swap

  si: Amount of memory swapped in from disk (/s).

  so: Amount of memory swapped to disk (/s).

  IO

  bi: Blocks received from a block device (blocks/s).

  bo: Blocks sent to a block device (blocks/s).

  System

  in: The number of interrupts per second, including the clock.

  cs: The number of context switches per second.

  CPU

  These are percentages of total CPU time.

  us: Time spent running non-kernel code. (user time, including nice time)

  sy: Time spent running kernel code. (system time)

  id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.

  wa: Time spent waiting for IO. Prior to Linux 2.5.41, shown as zero.

  FIELD DESCRIPTION FOR DISK MODE

  Reads

  total: Total reads completed successfully

  merged: grouped reads (resulting in one I/O)

  sectors: Sectors read successfully

  ms: milliseconds spent reading

  Writes

  total: Total writes completed successfully

  merged: grouped writes (resulting in one I/O)

  sectors: Sectors written successfully

  ms: milliseconds spent writing

  IO

  cur: I/O in progress

  s: seconds spent for I/O

  FIELD DESCRIPTION FOR DISK PARTITION MODE

  reads: Total number of reads issued to this partition

  read sectors: Total read sectors for partition

  writes : Total number of writes issued to this partition

  requested writes: Total number of write requests made for partition

  FIELD DESCRIPTION FOR SLAB MODE

  cache: Cache name

  num: Number of currently active objects

  total: Total number of available objects

  size: Size of each object

  pages: Number of pages with at least one active object

  totpages: Total number of allocated pages

  pslab: Number of pages per slab

  NOTES

  vmstat does not require special permissions.

  These reports are intended to help identify system bottlenecks. Linux

  vmstat does not count itself as a running process.

  All linux blocks are currently 1024 bytes. Old kernels may report

  blocks as 512 bytes, 2048 bytes, or 4096 bytes.

  Since procps 3.1.9, vmstat lets you choose units (k, K, m, M) default

  is K (1024 bytes) in the default mode

  vmstat uses slabinfo 1.1 FIXME

  FILES

  /proc/meminfo

  /proc/stat

  /proc/*/stat

  SEE ALSO

  iostat(1), sar(1), mpstat(1), ps(1), top(1), free(1)

  BUGS

  Does not tabulate the block io per device or count the number of sys-

  tem calls.

  AUTHORS

  Written by Henry Ware .

  Fabian Frédérick (diskstat, slab, partitions...)

  Throatwobbler Ginkgo Labs 27 July 1994 VMSTAT(8)

  示例:

  # vmstat 2 10

  procs -----------memory---------------------- -----swap--- -----io---- ---system--- ----cpu------

  r b swpd free buff cache si so bi bo in cs us sy id wa

  1 1 208 28960 38128 268204 0 0 278 40 1050 370 5 46 44 5

  1 0 208 28896 38128 268204 0 0 128 0 1054 310 4 38 58 1

  2 0 208 28896 38136 268196 0 0 257 55 1056 301 4 39 52 5

  2 0 208 24896 38136 268196 0 0 257 1 1042 593 6 87 7 0

  0 0 208 28672 38136 268196 0 0 257 25 1052 372 4 46 45 5

  0 0 208 28824 38140 268192 0 0 129 111 1052 316 3 32 64 1

  1 0 208 28768 38148 268184 0 0 257 109 1050 286 9 70 21 1

  1 0 208 28512 38148 268184 0 0 257 1 1046 327 6 48 43 2

  0 0 208 28832 38148 268184 0 0 257 1 1047 313 5 42 52 1

  0 0 208 28832 38152 268180 0 0 257 109 1050 308 4 33 59 5

  每2秒顯示一次,共顯示10次。

  在Unix(Solaris)平台下:

  -bash-3.00$ vmstat 2 10

  kthr memory page disk faults cpu

  r b w swap free re mf pi po fr de sr s0 s1 -- -- in sy cs us sy id

  0 0 0 5016344 4200040 126 512 35 0 0 0 0 0 1 0 0 731 1416 723 3 0 97

  0 0 0 2065576 2375112 14 54 0 0 0 0 0 0 0 0 0 870 625 950 3 0 96

  0 0 0 2065512 2375048 11 50 0 0 0 0 0 0 0 0 0 951 529 1066 3 0 97

  0 0 0 2065512 2375048 11 53 0 0 0 0 0 0 0 0 0 852 548 934 3 0 97

  0 0 0 2065512 2375048 4 40 0 0 0 0 0 0 0 0 0 836 483 907 3 0 97

  0 0 0 2065512 2375048 14 46 0 0 0 0 0 0 0 0 0 873 632 958 3 0 97

  0 0 0 2065512 2375048 0 0 0 0 0 0 0 0 0 0 0 812 417 863 3 0 97

  0 0 0 2065512 2375048 4 40 0 0 0 0 0 0 0 0 0 810 481 874 3 0 97

  0 0 0 2065384 2374920 0 0 0 0 0 0 0 0 1 0 0 801 406 862 3 0 96

  0 0 0 2065384 2374920 14 46 0 0 0 0 0 0 0 0 0 817 545 898 3 0 97

  一些標准說明:

  CPU:

  1) 如果(process r)是連續的大於在系統中的CPU的個數表示系統現在運行比較慢,有多數的進程等待CPU.

  2) 如果r的輸出數大於系統中可用CPU個數的4倍的話,則系統面臨著CPU短缺的問題,或者是CPU的速率過低,系統中有多數的進程在等待CPU,造成系統中進程運行過慢.

  3) 如果空閒時間(cpu id)持續為0並且系統時間(cpu sy)是用戶時間的兩倍(cpu us) 系統則面臨著CPU資源的短缺.

  簡單的說就是:

  r 和 b 不高於5,如果r 經常大於4,且id 經常少於40,則表示CPU 負荷很重。

  us+sy 不超過80%,如果大於80,進程就會在運行隊列中花費等待時間,響應時間和吞吐量就會下降。

  wa 不超過25, 如果說wa >40表明磁盤io沒有也許存在不合理的平衡,或者對磁盤操作比較頻繁

  一般情況下,導致CPU資源不足都是應用程序的問題.比如一些SQL語句不合理等等都會造成這樣的現象.

  內存:

  si和so基本為零。 其中si表示當前每秒交換回內存(Swap in)的總量,單位為kbytes;so表示當前每秒交換出內存(Swap out)的總量,單位為kbytes。如果si,so 長期不等於0,表示系統使用swap 頻繁,即內存不足。

  一般情況下,如果內存的占用率比較高,但是,CPU的占用很低的時候,可以考慮是有很多的應用程序占用了內存沒有釋放.

  要注意的是,Linux 內存在使用後不會釋放,所以一般會看到內存使用率很高,要判斷linux 內存是否正常,需要通過對swap 交換區的交換頻率來看。

Copyright © Linux教程網 All Rights Reserved