大前端

前端学习之家-大前端

linux vmstat命令

概要

The command is used to obtain information about memory, system processes, paging, interrupts, block I/O, disk, and CPU scheduling.

该命令显示系统内存,系统进程,分页,中断,IO,CPU调度等信息

命令

vmstat [options][delay [count]]

  • Options – various switches to customize the output.(不同维度的输出)
  • Delay – defines the time elapsed between output updates.(间隔时间)
  • Count – the number of output updates after the specified delay interval. If count isn’t set, the default value is infinite.(展示次数)

形式

vmstat

这个命令输出的是当前时刻各资源的使用情况

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
10  0      0 90732360 260196 11264492    0    0     0     2    0    0  1  1 98  0  0

r

The number of runnable processes (running or waiting for run time)

b

The number of processes in uninterruptible sleep.

swpd

the amount of virtual memory used(发生swap)

Free

the amount of idle memory

Buff

the amount of memory used as buffers

Cache

the amount of memory used as cache

Si

Amount of memory swapped in from disk (/s)

So

Amount of memory swapped to disk (/s)

Bi

Blocks received from a block device (blocks/s)

Bo

Blocks sent to a block device (blocks/s)

In

The number of interrupts per second, including the clock

Cs

The number of context switches per second

st

Time stolen from a virtual machine.(其它的cpu参数已经在top命令中介绍过了)

Cache与buff的区别

Cache主要指把disk中读取的文件存储在内存中,以便下一个进程或同一个进程的其它模块可能使用到。Cache缓存的是block,而非单个文件。

Buff主要是是cpu向disk(或者网络等其它设备)写数据时,先将数据写入buff中,当disk驱动准备好后,再一次性的写入(此时cpu已经在做别的事情了)。这样可以将多次写操作变更为一次写操作,弥补了disk的速度低于cpu速度的影响。

cache 也可以用于写,buffer 也可以用于读,两者并未有实实在在明显的界限。

vmstat -a

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
10  0      0 80273600 2278672 42397320    0    0     0     2    0    0  1  1 98  0  0

关于active memory和inactive memory的解释可以参照文献1

vmstat -s

    131787072 K total memory
     32395376 K used memory
     42988008 K active memory
      2280928 K inactive memory
     79669488 K free memory
       260720 K buffer memory
     19461488 K swap cache
            0 K total swap
            0 K used swap
            0 K free swap
   4131307671 non-nice user cpu ticks
      1472244 nice user cpu ticks
   3397811902 system cpu ticks
 439622572708 idle cpu ticks
      4854950 IO-wait cpu ticks
            0 IRQ cpu ticks
     18575279 softirq cpu ticks
            0 stolen cpu ticks
    113724008 pages paged in
   9915481144 pages paged out
            0 pages swapped in
            0 pages swapped out
    202328948 interrupts
   2601430576 CPU context switches
   1524129412 boot time
    801090252 forks

non-nice user cpu ticks

the number of times the CPU was used for high priority processes

nice user cpu ticks

the number of times the CPU was used for lower priority processes

system cpu ticks

 the number of times the CPU was used for kernel processes

idle cpu ticks

the number of times the CPU was idle

IO-wait cpu ticks

the number of times the CPU was used for input/output management

IRQ cpu ticks

the number of times the CPU received interrupt requests

softirq cpu ticks

the number of times the CPU received software interrupts

stolen cpu ticks

the number of times a virtual machine stole CPU time

vmstat -D

            2 disks 
            7 partitions 
      5316253 total reads
         5309 merged reads
    227448337 read sectors
      1167129 milli reading
    465758640 writes
    113744662 merged writes
  19831085640 written sectors
    234111941 milli writing
            0 inprogress IO
        10882 milli spent IO

vmstat -d

disk- ------------reads------------ ------------writes----------- -----IO------
       total merged sectors      ms  total merged sectors      ms    cur    sec
sda   1931293   3442 32589136  547394 262909353 106224105 10281382024 24175971      0   5565
sdb   3384984   1867 194859521  619750 202851436 7521199 9549754584 209936175      0   5317

Total

The total number of disk reads(writes)

merged

The total number of grouped reads(writes)

sectors

The total number of sectors that have been read in(written to)

ms

The total number of time it took to read(write) data from(to) the disk, in milliseconds.

cur

Total current disk reads or writes

sec

seconds spent for I/O

disk和partition的对应关系可以通过以下两个命令来查看

cat /proc/partitions

ll /dev/sda*

vmstat -p [partition_identifier]

sda1          reads   read sectors  writes    requested writes
              211822    1602770          0          0

sudo vmstat -m

显示内核使用slab内存的情况

The output consists of five columns:

1. Cache: Cached data name.

2. Num: Total active objects in the Num cache.

3. Total: The number of available objects in a specific cache.

4. Size: The size of each cached object.

5. Pages: The number of memory pages containing a cached object.

参考文献

  1. 解读vmstat中的ACTIVE/INACTIVE MEMORY - Linux就该这么学 - 博客园
  2. https://phoenixnap.com/kb/vmstat-command

发表评论:

Copyright Your WebSite.Some Rights Reserved.