vmstat-观察进程上线文切换

vmstat 是一款指定采样周期和次数的功能性监测工具,我们可以看到,它不仅可以统计内存的使用情况,还可以观测到 CPU 的使用率、swap 的使用情况。但 vmstat 一般很少用来查看内存的使用情况,而是经常被用来观察进程的上下文切换。

语法格式

vmstat [options] [delay [count]]

选项参数说明

参数 说明
-f 显示系统启动后,创建的进程总数
-m 显示 slab 信息
-s 显示内存的统计数据
-n 头信息仅显示一次
-d 显示磁盘的状态
-p 后接磁盘分区,表示显示指定磁盘分区的状态
-S 后接 k、K、m 或 M,表示输出字节的单位,默认 KB,不单独使用

delay:为一个数字,表示状态信息刷新的时间间隔

count:为一个数字,表示显示报告的次数

示例:每隔 2 秒刷新一次,共显示 5 次结果

[root@centos /var/lib/rpm]#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 1427392   5380 281816    0    0    14     6   56   91  0  0 100  0  0
 0  0      0 1427300   5380 281816    0    0     0     0   49   73  0  0 100  0  0
 0  0      0 1427300   5380 281816    0    0     0     0   49   75  0  0 100  0  0
 0  0      0 1427332   5380 281816    0    0     0     0   47   79  0  0 100  0  0
 0  0      0 1427364   5380 281816    0    0     0     1   52   88  0  1 100  0  0
[root@centos /var/lib/rpm]#

解释:

procs 表示进程段

  • r:表示可运行(正在运行或等待运行)进程的个数,和核心数有关;cpu上等待运行的任务的队列长度

  • b:表示处于不可中断睡眠状态的进程个数(被阻塞的任务队列长度)

memory 表示内存段

  • swpd:虚拟内存(交换内存)的使用总量

  • free:空闲的物理内存总量

  • buff:用来作为缓冲(buffer)的内存总量

  • cache: 用于 cache 的内存总量

swap 交换分区段

  • si:从磁盘交换到内存的数据速率(kb/s)

  • so:从内存交换到磁盘的数据速率(kb/s)

io 段

  • bi:从块设备读入数据到系统的速率(kb/s)

  • bo:保存数据至块设备的速率(kb/s)

system 段

  • in:interrupts,中断速率(每秒中断数),包括时钟中断
  • cs:context switch,进程切换(每秒上下文切换次数)速率

cpu 段

  • us:user space 非内核代码运行的时间,即,用户空间进程所占 cpu 的百分比

  • sy:system:内核代码运行的时间,即,内核系统进程执行时间百分比

  • id:idle:空闲时间百分比,包括 io 等待时间

  • wa:wait:i/o 等待时间百分比

  • st:stolen 运行虚拟机窃取的时间,即被虚拟化技术所偷走的时间

posted @ 2021-03-27 15:44  临江仙我亦是行人  阅读(105)  评论(0编辑  收藏  举报