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

Unix系統vmstat命令詳解

Virtual Memory Statistics ( vmstat ) 是報告關於進程,虛擬內存,磁盤,CPU活動的一個統計報告。

在一個多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. Additional  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  kernelor 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 specified, 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  system calls.

AUTHORS

Written by Henry Ware <[email protected]>.

Fabian Frédérick <[email protected]> (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

查看本欄目更多精彩內容:http://www.bianceng.cn/OS/unix/

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