Linux操作系统基础命令-vmstat

vmstat 虚拟内存统计

Linux vmstat1 命令(Virtual Memory Statistics) 用来显示Linux系统虚拟内存状态。
可以展现指定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况、I/O等系统整体运行状态。

vmstat 用法

Usage: vmstat [options] [delay [count]]
e.g., vmstat, vmstat 2 5
delay :刷新时间间隔。如果不指定,只显示一条结果
count :刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷

$ vmstat 2 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 1312524 326480 5556100    0    0     0     0    1    0  0  0 100  0  0
 0  0      0 1312524 326480 5556100    0    0     0     0   54   56  0  0 100  0  0
 0  0      0 1312524 326480 5556100    0    0     0     0   63   64  0  0 100  0  0
 0  0      0 1312508 326480 5556100    0    0     0     0   61   60  0  0 100  0  0
 0  0      0 1312540 326480 5556100    0    0     0     0   53   58  0  0 100  0  0

vmstat 选项

选项简要描述
-a, --active显示活跃和非活跃内存
-f, --forks显示从系统启动至今的fork数量
-m, --slabs显示slabinfo
-n, --one-header只在开始时显示一次各字段名称
-s, --stats显示内存相关统计信息及多种系统活动数量
-d, --disk显示磁盘相关统计信息
-D, --disk-sum汇总磁盘相关统计信息
-p, --partition 显示指定磁盘分区统计信息
-S, --unit 使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K
-w, --wide显示结果宽输出
-t, --timestamp显示结果中带时间戳
-h, --help显示vmstat使用帮助
-V, --version显示vmstat版本信息

vmstat 示例

$ vmstat -w
procs -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu--------
 r  b         swpd         free         buff        cache   si   so    bi    bo   in   cs  us  sy  id  wa  st
 1  0            0      1314476       326516      5556060    0    0     0     0    1    0   0   0 100   0   0

procs 进程
r 运行队列中进程数量,这个值也可以判断是否需要增加CPU。(长期大于1)
b 等待IO的进程数量

memory 内存
swpd 使用虚拟内存大小,如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能
free 空闲物理内存大小
buff 用作缓冲的内存大小
cache 用作缓存的内存大小,如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小

swap 交换区
si 每秒从交换区写到内存的大小,由磁盘调入内存
so 每秒写入交换区的内存大小,由内存调入磁盘
注意:内存够用的时候,这2个值都是0。
如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有些朋友看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。因为linux总是先把内存用光

io 输入输出
bi 每秒读取的块数
bo 每秒写入的块数
注意:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大

system 系统信息
in 每秒中断数,包括时钟中断
cs 每秒上下文切换数
注意:上面2个值越大,会看到由内核消耗的CPU时间会越大

cpu CPU信息(以百分比表示)
us 用户进程执行时间百分比(user time) us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速
sy 内核系统进程执行时间百分比(system time) sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因
wa IO等待时间百分比 wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)
id 空闲时间百分比

# vmstat -s 查看内存使用的详细信息
$ vmstat -s
      8012508 K total memory
       815760 K used memory
      1407900 K active memory
      4935424 K inactive memory
      1314148 K free memory
       326528 K buffer memory
      5556072 K swap cache
     14680060 K total swap
            0 K used swap
     14680060 K free swap
       708555 non-nice user cpu ticks
         2139 nice user cpu ticks
       648064 system cpu ticks
   1877888305 idle cpu ticks
      1204558 IO-wait cpu ticks
            0 IRQ cpu ticks
         2862 softirq cpu ticks
       425525 stolen cpu ticks
      1456761 pages paged in
      9074226 pages paged out
            0 pages swapped in
            0 pages swapped out
    493924598 interrupts
    524772832 CPU context switches
   1547016120 boot time
      9043091 forks
# vmstat -d 查看磁盘的读/写
$ vmstat -w -d
disk- -------------------reads------------------- -------------------writes------------------ ------IO-------
          total    merged     sectors          ms     total    merged     sectors          ms     cur     sec
vda       34329         8     2341192      230644    424161    341252    17539540    53518376       0    7844
vdb       12053        19      569194       71231      9876     10734      609392      189422       0      56
vdc         179         0        3136          24         0         0           0           0       0       0
dm-0      31010         0     2235050      218373    144559         0    11081048    21811636       0    3428

# 查看/dev/vda1磁盘的读/写
$ vmstat -p /dev/vda1
vda1          reads   read sectors  writes    requested writes
                 336      55962         15         60

参考资料

  • 如有 错误之处 还请多多指正

注脚


  1. vmstat ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值