一、概念

用来显示Linux系统虚拟内存状态,也可以报告关于进程、内存、I/O等系统整体运行状态。

二、语法

vmstat [-a] [-n] [-t] [-S unit] [delay [ count]]

vmstat [-s] [-n] [-S unit]

vmstat [-m] [-n] [delay [ count]]

vmstat [-d] [-n] [delay [ count]]

vmstat [-p disk partition] [-n] [delay [ count]]

vmstat [-f]

vmstat [-V]

以上是命令的组合模式语法,详情看示例

参数说明

-a:显示活跃和非活跃内存

-f:显示从系统启动至今的fork数量 。

-m:显示slabinfo

-n:只在开始时显示一次各字段名称。

-s:显示内存相关统计信息及多种系统活动数量。

delay:刷新时间间隔。如果不指定,只显示一条结果。

count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。

-d:显示磁盘相关统计信息。

-p:显示指定磁盘分区统计信息

-S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)

-V:显示vmstat版本信息。

执行命令 : vmstat

响应结果参数说明:

1、procs

r:表示运行和等待CPU时间片的进程数(就是说多少个进程真的分配到CPU),这个值如果长期大于系统CPU个数,说明CPU不足,需要增加CPU

b:表示在等待资源的进程数,比如正在等待I/O或者内存交换等。

2、memory

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

free:表示当前空闲的物理内存

buff:表示baffers cached内存大小,也就是缓冲大小,一般对块设备的读写才需要缓冲

Cache:表示page cached的内存大小,也就是缓存大小,一般作为文件系统进行缓冲,频繁访问的文件都会被缓存,如果cache值非常大说明缓存文件比较多,如果此时io中的bi比较小,说明文件系统效率比较好

3、swap

si:表示有磁盘调入内存,也就是内存进入内存交换区的内存大小;通俗的讲就是 每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。

so:表示由内存进入磁盘,也就是由内存交换区进入内存的内存大小。

注意:一般情况下si、so的值都为0,如果si、so的值长期不为0,则说明系统内存不足,需要增加系统内存

4、io

bi:表示由块设备读入数据的总量,即读磁盘,单位kb/s

bo:表示写到块设备数据的总量,即写磁盘,单位kb/s

注意:如果bi+bo的值过大,且wa值较大,则表示系统磁盘IO瓶颈

5、system

in:表示某一时间间隔内观测到的每秒设备终端数

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

注意:这两个值越大,则由内核消耗的CPU就越

6、CPU

us:表示用户进程消耗的CPU时间百分比,us值越高,说明用户进程消耗CPU时间越多,如果长期大于50%,则需要考虑优化程序或者算法

sy:表示系统内核进程消耗的CPU时间百分比,一般来说us+sy应该小于80%,如果大于80%,说明可能存在CPU瓶颈

id:表示CPU处在空间状态的时间百分比

wa:表示IP等待所占用的CPU时间百分比,wa值越高,说明I/O等待越严重,根据经验wa的参考值为20%,如果超过20%,说明I/O等待严重,引起I/O等待的原因可能是磁盘大量随机读写造成的,也可能是磁盘或者监控器的贷款瓶颈(主要是块操作)造成的

综上所述,如果评估CPU,需要重点关注procs项的r列值和CPU想的us、sy、wa列的值

三、示例

1、表示两秒采集一次服务器状态,2表示时间,1表示一次。

vmstat 2 1     即运用了语法:vmstat [delay] [count]

2、每隔2秒采集一次服务器状态,这采集属于实时状态:  vmstat 2

3、查看内存使用的详细信息: vmstat -s

4、查看磁盘的读写: vmstat -d

常用场景:项目上线后查看服务器情况,用于监控服务器情况,及时处理潜在的 问题。

学习地址:

https://www.cnblogs.com/beginner-boy/p/8067130.html

linux 之 vmstat 命令相关推荐

  1. Linux中vmstat命令详解

    注:本博文主要讲解vmstat命令结果中各参数的含义,在学习的过程中,总是不能够清楚的了解这些参数的含义,所以自己稍微记录一下,本人认为知道各参数的含义是学习linux或者性能分析的基础,至于如何分析 ...

  2. linux的vmstat命令,Linux vmstat命令

    vmstat是一个查看虚拟内存(Virtual Memory)使用状况的工具. 一般格式: vmstat [-V] [-n] [delay [count]] 常用选项: -V :打印版本信息. -n ...

  3. Linux之vmstat命令

    [Linux常用命令速查手册]关注[入门小站],后台回复 「1001」 自取. vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存.进程. ...

  4. Linux系统vmstat命令

    一. 前言 为了更方便的理解本篇内容含义,所以请最好看看如下繁琐的概念,更容易理解. 没懂这些概念,就算看完你就只能知道,运行下vmstat ,看看linux反馈结果而已,更要知其所以然嘛-   先说 ...

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

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

  6. linux vmstat_Linux中vmstat命令指南

    linux vmstat An acronym for "Virtual Memory Statistics", the vmstat command is a Linux uti ...

  7. linux备份磁盘数据,linux下vmstat输出数据分析-linux下dd命令备份磁盘的节点(...-linux watch命令用法简介(图文)_169IT.COM...

    Linux下vmstat命令的输出,对应着很多选项,有的朋友不是很明白. 下面为大家作详细的分析,如下: Vmstat procs -----------memory---------- ---swa ...

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

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

  9. 每天一个linux命令(46):vmstat命令

    vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存.进程.CPU活动进行监控.他是对系统的整体情况进行统计,不足之处是无法对某个进程进行深 ...

最新文章

  1. 计算机管理 未分配磁盘,win7系统硬盘(未分配磁盘)如何重新建立扩展分区?
  2. Play 1.x框架学习之六:未登陆拦截机制 (Not Login intercept In play framework)
  3. U-Boot的启动信息和命令使用
  4. linux中 probe函数的何时调用的?
  5. OAuth2(一)——核心概念
  6. cobbler工作流分析
  7. 1.php查询数据,查询数据 - ThinkPHP 5.1 完全开发手册
  8. [转]解决IE下CSS背景图片闪烁的Bug
  9. Nacos Spring Boot 快速开始
  10. TCP协议连环12问
  11. NMF(非负矩阵分解)的场景应用
  12. ElasticSearch全文搜索引擎之查询API篇
  13. 【盘点】2017美国人工智能专业最好的20所大学(附地理位置)Ⅱ
  14. 面试题——红黑树,B树、B+树
  15. MySQL期末复习题(题库)
  16. CF1467C Three Bags(思维)
  17. microLite_timer,简洁、小巧精干的软件定时器
  18. 哈佛大学联合团队新突破:在计算过程中实现量子纠错
  19. Weka package manager 出错的解决办法
  20. 嵌入式Linux开发_Ping来Ping去

热门文章

  1. 辽宁聚能合创:抖音怎么增加浏览量?
  2. 我的Java学习之路(第七天)------数组
  3. ios scrollView滚动底部空白区域的问题 enhanced和enableBackToTop冲突
  4. vim buffer使用心得
  5. .NetCore对接各大财务软件凭证API——金蝶系列(1)
  6. CSharp调用c++的标定库DLL方式
  7. android开发-城市选择页面
  8. 嵌入式Linux添加ssh服务
  9. 菜鸟级MVC登录注册实现
  10. 外贸商务网站php源码,semcms外贸网站php版 v3.9