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 运行虚拟机窃取的时间,即被虚拟化技术所偷走的时间

vmstat-观察进程上线文切换的更多相关文章

  1. [转帖]进程上下文频繁切换导致load average过高

    进程上下文频繁切换导致load average过高 2016年6月26日admin发表评论阅读评论 http://www.361way.com/linux-context-switch/5131.ht ...

  2. 个人小爱好:Operating System: three easy pieces—第6章第3小节问题2#进程间的切换

    问题2#:进程间的切换 直接执行的下一个问题是如何实现进程的切换.进程的切换按理说是挺简单的,对吧?不就是决定哪一个进程应该停止,哪一进程应该开始而已,才多大点事情啊?但,事实上这还真的有点棘手:尤其 ...

  3. linux0.11内核源码——进程各状态切换的跟踪

    准备工作 1.进程的状态有五种:新建(N),就绪或等待(J),睡眠或阻塞(W),运行(R),退出(E),其实还有个僵尸进程,这里先忽略 2.编写一个样本程序process.c,里面实现了一个函数 /* ...

  4. C# 调用word进程操作文档关闭进程

    C# 调用word进程操作文档关闭进程 作者:Jesai 时间:2018-02-12 20:36:23 前言: office办公软件作为现在主流的一款办公软件,在我们的日常生活和日常工作里面几乎每天都 ...

  5. 进程上下文频繁切换导致load average过高

    一.问题现象 现网有两台虚拟机主机95%的cpu处于idle状态,内存使用率也不是特别高,而主机的load average达到了40多. 二.问题分析 先在主机上通过top.free.ps.iosta ...

  6. Linux进程的前后台切换

    一.Linux前后台切换的相关命令:   1.&  在命令的后面加上这个符合,让命令进程在后台运行  例如: #ping 127.0.0.1 &        // 此时命令ping ...

  7. Day035--Python--管道, Manager, 进程池, 线程切换

    管道 #创建管道的类: Pipe([duplex]):在进程之间创建一条管道,并返回元组(conn1,conn2),其中conn1,conn2表示管道两端的连接对象,强调一点:必须在产生Process ...

  8. 35、输入框(UITextField)密码明暗文切换

    - (IBAction)pwdTextSwitch:(UIButton *)sender { // 前提:在xib中设置按钮的默认与选中状态的背景图 // 切换按钮的状态 sender.selecte ...

  9. 配置thinkphp对mysql线上线下切换不同环境的配置 - (mysql-thinkphp) (1)

    1.先打印出配置项的信息,在Index控制器下面的index->index里面设置 namespace app\index\controller; class Index { public fu ...

随机推荐

  1. YAML & .yml

    YAML & .yml YAML: YAML Ain't Markup Language https://yaml.org/ https://github.com/yaml/www.yaml. ...

  2. @bind decorator

    @bind decorator https://www.npmjs.com/package/bind-decorator https://github.com/NoHomey/bind-decorat ...

  3. vue & dynamic components

    vue & dynamic components https://vuejs.org/v2/guide/components-dynamic-async.html keep-alive htt ...

  4. 利用 Java 操作 Jenkins API 实现对 Jenkins 的控制详解

    本文转载自利用 Java 操作 Jenkins API 实现对 Jenkins 的控制详解 导语 由于最近工作需要利用 Jenkins 远程 API 操作 Jenkins 来完成一些列操作,就抽空研究 ...

  5. SpringBoot使用谷歌方式生成图片验证码

    1.新建一个springboot的项目 2.导入坐标 <dependency> <groupId>com.github.penggle</groupId> < ...

  6. css常用居中方式

    一.水平居中 1.内联元素 父级元素加 text-align: center 即可 html <div class="container"> <a>内联元素 ...

  7. 你不知道的Scheduled定时任务骚操作

    目录 一.什么是定时任务 二.项目依赖 三.注解式定时任务 3.1 cron 3.2 fixedDelay 3.3 fixedDelayString 3.4 fixedRate 3.5 fixedRa ...

  8. 译文《最常见的10种Java异常问题》

    封面:洛小汐 译者:潘潘 知彼知己,方能百战不殆. 前言 本文总结了有关Java异常的十大常见问题. 目录 检查型异常(checked) vs. 非检查型异常(Unchecked) 异常管理的最佳实践 ...

  9. 02----python入门----基本数据类型

    关于数据分类依据 一.数字型(int) Python可以处理任意大小的正负整数,但是实际中跟我们计算机的内存有关,在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,在64位系 ...

  10. Python中OS对目录的操作以及引用

    路径的获取 对当前目录的获取 1 path = os.getcwd() 2 print("获取到的当前目录是:({})".format(path)) 获取当前文件所在的绝对路径 i ...