vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值
包括服务器的CPU使用率,
内存使用,
虚拟内存 交换情况,
IO读写情况
相比top,通过vmstat可以看到整个机器的 CPU,内存,IO的使用情况,
而不是单单看到各个进程的CPU使用率和内存使用率。

运行示例

一般vmstat工具的使用是通过

两个数字参数来完成的
第一个参数: 采样的时间间隔数,单位是秒,
第二个参数: 采样的次数

如:

[root@izuf633l0ge76tv5mzalpmz ~]# vmstat 2 12
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st2  0      0 835920  80296 642904    0    0     1     1   14   69  0  0 100  0  00  0      0 835920  80296 642936    0    0     0     0  216  304  1  1 99  0  00  0      0 835920  80296 642936    0    0     0     0  208  313  0  1 99  0  00  0      0 835920  80300 642936    0    0     0     8  186  292  0  0 99  1  00  0      0 835920  80300 642936    0    0     0     0  115  274  0  0 99  0  00  0      0 835920  80300 642936    0    0     0     0  115  278  0  0 100  0  00  0      0 835920  80300 642936    0    0     0     0  115  280  1  0 100  0  00  0      0 835920  80300 642936    0    0     0     0  117  284  0  1 99  0  00  0      0 835920  80300 642936    0    0     0     0  113  276  0  0 100  0  00  0      0 835920  80300 642936    0    0     0     0  114  281  0  1 100  0  00  0      0 835920  80300 642936    0    0     0     0  119  285  1  0 99  0  00  0      0 835920  80300 642936    0    0     0     0  111  274  0  0 100  0  0
[root@izuf633l0ge76tv5mzalpmz ~]#

实际上,在应用过程中,我们会在一段时间内一直监控,不想监控直接结束vmstat就行了,例如:

[root@izuf633l0ge76tv5mzalpmz ~]# vmstat 2
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st3  0      0 836068  80304 642936    0    0     1     1   14   69  0  0 100  0  00  0      0 836044  80304 642936    0    0     0     0  228  324  0  0 100  0  00  0      0 836044  80304 642936    0    0     0     0  233  334  1  1 99  0  0
... ...
这表示vmstat每2秒采集数据,一直采集,直到我结束程序。

参数详解

Linux 内存监控vmstat命令输出分成六个部分:
  1. 进程procs
    r:在运行队列中等待的进程数 。b:在等待io的进程数 。
  1. 内存memoy:
    swpd:现时可用的交换内存(单位KB)。 free:空闲的内存(单位KB)。buff: 缓冲去中的内存数(单位:KB)。cache:被用来做为高速缓存的内存数(单位:KB)。
  1. swap交换页面
    si: 从磁盘交换到内存的交换页数量,单位:KB/秒。so: 从内存交换到磁盘的交换页数量,单位:KB/秒。
  1. io块设备:
    bi: 发送到块设备的块数,单位:块/秒。bo: 从块设备接收到的块数,单位:块/秒。
  1. system系统:
    in: 每秒的中断数,包括时钟中断。cs: 每秒的环境(上下文)转换次数。
  1. cpu中央处理器:
    cs:用户进程使用的时间 。以百分比表示。sy:系统进程使用的时间。 以百分比表示。id:中央处理器的空闲时间 。以百分比表示。

常见诊断:

1、假如 r 经常大于4 ,且 id 经常小于40,表示中央处理器的负荷很重。
2、假如 bi,bo 长期不等于0,表示物理内存容量太小。

每个参数的具体意思如下:

r

表示运行队列(就是说多少个进程真的分配到CPU),
我测试的服务器目前CPU比较空闲,没什么程序在跑,
当这个值超过了CPU数目,就会出现CPU瓶颈 了。
这个也和top的负载有关系,
一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。
top的负载类似每秒的运行队 列。
如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。

b

表示阻塞的进程,这个不多说,进程阻塞,大家懂的。

swpd

虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,
如果不是程序内存泄露的原因,
那么你该升级内存了或者把耗内存的任务迁移到其他机器。

free

空闲的物理内存的大小,我的机器内存总共8G,剩余3415M。

buff

Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存,我本机大概占用300多M

cache

cache直接用来记忆我们打开的文件,给文件做缓冲,
我本机大概占用300多M
(这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,
是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。)

si

每秒从磁盘读入虚拟内存的大小,如果这个值大于0,
表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。
我的机器内存充裕,一切正常。

so

每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。

bi

块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,
默认块大小是1024byte,我本机上没什么IO操作,所以一直是0,
但是我曾在处理拷贝大量数据(2-3T)的机器上看过可以达到140000/s,
磁盘写入速度差不多140M每秒

bo

块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。
bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。

in

每秒CPU的中断次数,包括时间中断

cs

每秒上下文切换次数,
例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,
这个值要越小越好,太大了,要考虑调低线程或者进程的 数目,
例如在apache和nginx这种web服务器中,
我们一般做性能测试时会进行几千并发甚至几万并发的测试,
选择web服务器的进程可以由进程或 者线程的峰值一直下调,压测,
直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。
系统调用也是,每次调用系统函数,我们的代码就会进入内核 空间,导致上下文切换,
这个是很耗资源,也要尽量避免频繁调用系统函数。
上下文切换次数过多表示你的CPU大部分浪费在上下文切换,
导致CPU干正经事的 时间少了,CPU没有充分利用,是不可取的。

us

用户CPU时间,我曾经在一个做加密解密很频繁的服务器上,
可以看到us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。

sy

系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。

id

空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,
us是用户CPU使用率,sy是系统CPU使用率。

wt

等待IO CPU时间。

vmstat命令参数及其介绍相关推荐

  1. linux shell xcopy file by date,Xcopy命令参数使用介绍

    XCOPY是COPY的扩展,可以把指定的目录连文件和目录结构一并拷贝,但不能拷贝系统文件:使用时源盘符.源目标路径名.源文件名至少指定一个:选用/S时对源目录下及其子目录下的所有文件进行COPY.除非 ...

  2. vmstat 命令参数详解

    vmstat  n m  :每隔n秒钟刷新,抓取m次数后退出. [oracle@sor-sys properties]$ vmstat 2 3 procs -----------memory----- ...

  3. Linux磁盘下面有个mpatha,Linux中如何使用vmstat命令

    Linux下vmstat 命令可用于报告虚拟内存的统计信息,除此之外,vmstat 命令还有很多用法,下面系统之家的小编将给大家做个vmstat 命令的详细介绍,以便你有个了解. 它是对系统的整体情况 ...

  4. Linux—vmstat命令详解

    vmstat概念 vmstat命令是 Virtual Meomory Statistics(虚拟内存统计)的缩写,可用来动态监控系统资源的 CPU 使用.进程状态.内存使用.虚拟内存使用.硬盘输入/输 ...

  5. cmd命令之Xcopy介绍_复制文件夹里所有文件到另一个文件夹操作方式

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.Xcopy是什么? 二.Xcopy参数介绍 三.使用示例 例1.要将所有文件和子目录(包括任何空子目录)从驱动器 ...

  6. avast! for linux/unix servers,最常见的Linux/Unix监控工具vmstat命令详解

    最常见的Linux/Unix监控工具vmstat命令详解 vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率.内存使用.虚拟内存交换 ...

  7. linux tf命令,Linux系统命令介绍之vmstat命令详解

    今天小编要跟大家介绍的vmstat命令详解.熟悉Linux系统和使用Linux系统工作的小伙伴都知道Linux的命令有很多,而真正在工作中用到的命令应该不超过几十个,为了让大家更好的掌握这些命令,小编 ...

  8. HDFS命令行客户端使用,命令行客户端支持的命令参数,常用命令参数介绍

    3.HDFS的shell(命令行客户端)操作 3.1 HDFS命令行客户端使用 HDFS提供shell命令行客户端,使用方法如下: [toto@hadoop hadoop-2.8.0]$ hdfs d ...

  9. ansible命令参数介绍

    ansible命令参数介绍 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 -m:要执行的模块,默认为command -a:模块的参数 -u:ssh连接 ...

  10. linux编程参数列表,Linux编程 14 文件权限(用户列表passwd,用户控制shadow,useradd模板与useradd命令参数介绍)...

    一. 概述 linux安全系统的核心是用户账户. 创建用户时会分配用户ID(UID). UID是唯一的,但在登录系统时不是用UID,而是用登录名.在讲文件权限之之前,先了解下linux是怎样处理用户账 ...

最新文章

  1. Spring的AOP思想和实现AOP思想的框架AspectJ
  2. android中占容器比例,Android中的容器
  3. 推荐几个电子/嵌入式方向的公众号
  4. 安卓平板排行榜_shopee虾皮台湾安卓市场, shopee虾皮直播下载
  5. java awt 按钮响应_Java AWT按钮
  6. php while循环语句格式,PHP while 循环
  7. 知网被引第一、第二的论文,都出自这位双一流大学教授
  8. 中国专利申请CPC客户端软件问题解决方案
  9. Minio入门系列【19】断点续传和断点下载实现方案
  10. Python实现图片灰度化
  11. Java 文件上传 三种方式
  12. gsm无线热点数据采集服务器,GSM无线网络优化及WLAN热点分析工具开发
  13. 手机IMEI串码获取
  14. 有关计算机软件的心得1500,plc心得体会1500字
  15. CouchDB使用小记
  16. 183条地铁线路,3034个地铁站,发现中国地铁名字的秘密。
  17. 从零开始—仿牛客网讨论社区项目(一)
  18. 计算机职称证书退休工资,职称就像是一座大山,相同教龄不同职称的教师退休工资相差多少?...
  19. 【子桓说】你的确做了很多工作!但和挣钱没什么关系
  20. 【cocos2dx面试题干货】--2021年最新cocos2dx面试干货(引擎篇)

热门文章

  1. 设计师必备,素材网站如千图包图免费下载的方法
  2. 51单片机简谱音乐3-音阶与频率表问题以及简谱小笔记
  3. turnserver开机启动配置
  4. OpenSesame-史上最详细教程
  5. dubbo源代码编译打包错误解决
  6. [转载]下载网页中的ts视频文件
  7. 联想开机按f2怎么修复系统图解_联想笔记本开机f2修复电脑步骤 - 卡饭网
  8. 安卓手机上超好用的4款C语言IDE(附下载地址)
  9. javaweb学生宿舍管理系统设计与实现(含程序+论文+数据库)
  10. Cisco Packet Tracer思科模拟器中OSPF动态路由配置