您好,登錄后才能下訂單哦!
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 <al172@yfn.ysu.edu>.
Fabian Frédérick <ffrederick@users.sourceforge.net> (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 交換區的交換頻率來看。
oracle視頻教程請關注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。