Linux存储性能观测——vmstat命令详解

本文介绍vmstat命令的使用方法,该命令可以获取进程、内存、CPU活动等信息,帮助识别系统瓶颈。文中详细解释了各个字段含义,并给出了常用命令形式。

功能:获得有关进程、虚存、页面交换空间及 CPU活动的信息
特点:

  • 可以看到整个系统的负载情况,而不是单独看某个进程的负载情况。
$ vmstat 
procs -----------memory----------      ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff      cache   si   so    bi    bo   in   cs  us sy id wa st
 5  0  97744 8170896 1384380 29983200    0    0     8    25    1    1   3  0 96  0  0
rbswpdfreebuffcachesisobiboincsussyidwast
运行队列(多少个进程真的分配到CPU)阻塞的进程数量虚拟内存已使用的大小空闲的物理内存的大小已用的buff大小,对块设备的读写进行缓冲已用的cache大小,文件系统的cache每秒从磁盘读入虚拟内存的大小每秒虚拟内存写入磁盘的大小(读磁盘)系统从块设备那里每秒接收的块数量(写磁盘)每秒发送给块设备的块数量每秒上下文切换数每秒CPU的中断次数,包括时间中断用户CPU时间系统CPU时间空闲 CPU时间等待IO的CPU时间虚拟机偷取时间
运行队列(多少个进程真的分配到CPU)阻塞的进程数量虚拟内存已使用的大小空闲的物理内存的大小已用的buff大小,对块设备的读写进行缓冲已用的cache大小,文件系统的cache每秒从磁盘读入虚拟内存的大小每秒虚拟内存写入磁盘的大小每秒读出的块数每秒写入的块数每秒上下文切换数每秒CPU的中断次数,包括时间中断用户态使用的 cpu 时间比系统态使用的 cpu 时间比空闲 CPU时间占比cpu 等待磁盘写入完成时间虚拟机偷取时间
  • 一般来说,id + us + sy = 100,id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。

常用形式

$ vmstat 1 5 #第一个参数是每间隔多少秒采样一次,第二个参数是采样次数
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 5  0  97744 29317864 1384412 29993040    0    0     8    25    1    1  3  0 96  0  0
 3  0  97744 29316412 1384412 29993044    0    0     0   376 7966 5635 10  0 90  0  0
 3  0  97744 29317000 1384412 29993044    0    0     0   164 8117 4424 10  1 90  0  0
 3  0  97744 29316612 1384412 29993048    0    0     0   159 6548 2603 10  0 90  0  0
 3  0  97744 29316564 1384412 29993048    0    0     0   197 8539 4373 10  1 89  0  0
$ vmstat 1 #第一个参数是每间隔多少秒采样一次
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 3  0  97744 29291308 1384412 29994384    0    0     8    25    1    0  3  0 96  0  0
 3  0  97744 29292104 1384412 29994388    0    0     0   144 9192 14675 10  1 88  0  0
 3  0  97744 29290892 1384412 29994388    0    0     0   296 7706 3556 10  1 90  0  0
 3  0  97744 29291736 1384412 29994392    0    0     0   147 7400 3793 10  0 90  0  0
 3  0  97744 29291180 1384412 29994392    0    0     0   137 7486 3579 10  1 90  0  0

英文说明

$ man vmstat
VMSTAT(8)                                                                    System Administration                                                                   VMSTAT(8)

NAME
       vmstat - Report virtual memory statistics

SYNOPSIS
       vmstat [options] [delay [count]]

DESCRIPTION
       vmstat reports information about processes, memory, paging, block IO, traps, disks 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
       delay  The delay between updates in seconds.  If no delay is specified, only one report is printed with the average values since boot.

       count  Number of updates.  In absence of count, when delay is defined, default is infinite.

       -a, --active
              Display active and  inactive memory, given a 2.5.41 kernel or better.

       -f, --forks
              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.

       -m, --slabs
              Displays slabinfo.

       -n, --one-header
              Display the header only once rather than periodically.

       -s, --stats
              Displays a table of various event counters and memory statistics.  This display does not repeat.

       -d, --disk
              Report disk statistics (2.5.70 or above required).

       -D, --disk-sum
              Report some summary statistics about disk activity.

       -p, --partition device
              Detailed statistics about partition (2.5.70 or above required).

       -S, --unit character
              Switches outputs between 1000 (k), 1024 (K), 1000000 (m), or 1048576 (M) bytes.  Note this does not change the swap (si/so) or block (bi/bo) fields.

       -t, --timestamp
              Append timestamp to each line

       -w, --wide
              Wide  output  mode  (useful for systems with higher amount of memory, where the default output mode suffers from unwanted column breakage).  The output is wider
              than 80 characters per line.

       -V, --version
              Display version information and exit.

       -h, --help
              Display help and exit.

FIELD DESCRIPTION FOR VM MODE
   Procs
       r: The number of runnable processes (running or 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, included in idle.
       st: Time stolen from a virtual machine.  Prior to Linux 2.6.11, unknown.

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
       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

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

FILES
       /proc/meminfo
       /proc/stat
       /proc/*/stat

SEE ALSO
       free(1), iostat(1), mpstat(1), ps(1), sar(1), top(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...)

REPORTING BUGS
       Please send bug reports to ⟨procps@freelists.org⟩

procps-ng                                                                       September 2011                                                                       VMSTAT(8)

参考资料

[1] 你不一定懂的cpu显示信息
[2] Vmstat命令详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值