linux 之 vmstat 命令
一、概念
用来显示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 命令相关推荐
- Linux中vmstat命令详解
注:本博文主要讲解vmstat命令结果中各参数的含义,在学习的过程中,总是不能够清楚的了解这些参数的含义,所以自己稍微记录一下,本人认为知道各参数的含义是学习linux或者性能分析的基础,至于如何分析 ...
- linux的vmstat命令,Linux vmstat命令
vmstat是一个查看虚拟内存(Virtual Memory)使用状况的工具. 一般格式: vmstat [-V] [-n] [delay [count]] 常用选项: -V :打印版本信息. -n ...
- Linux之vmstat命令
[Linux常用命令速查手册]关注[入门小站],后台回复 「1001」 自取. vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存.进程. ...
- Linux系统vmstat命令
一. 前言 为了更方便的理解本篇内容含义,所以请最好看看如下繁琐的概念,更容易理解. 没懂这些概念,就算看完你就只能知道,运行下vmstat ,看看linux反馈结果而已,更要知其所以然嘛- 先说 ...
- Linux磁盘下面有个mpatha,Linux中如何使用vmstat命令
Linux下vmstat 命令可用于报告虚拟内存的统计信息,除此之外,vmstat 命令还有很多用法,下面系统之家的小编将给大家做个vmstat 命令的详细介绍,以便你有个了解. 它是对系统的整体情况 ...
- linux vmstat_Linux中vmstat命令指南
linux vmstat An acronym for "Virtual Memory Statistics", the vmstat command is a Linux uti ...
- linux备份磁盘数据,linux下vmstat输出数据分析-linux下dd命令备份磁盘的节点(...-linux watch命令用法简介(图文)_169IT.COM...
Linux下vmstat命令的输出,对应着很多选项,有的朋友不是很明白. 下面为大家作详细的分析,如下: Vmstat procs -----------memory---------- ---swa ...
- linux tf命令,Linux系统命令介绍之vmstat命令详解
今天小编要跟大家介绍的vmstat命令详解.熟悉Linux系统和使用Linux系统工作的小伙伴都知道Linux的命令有很多,而真正在工作中用到的命令应该不超过几十个,为了让大家更好的掌握这些命令,小编 ...
- 每天一个linux命令(46):vmstat命令
vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存.进程.CPU活动进行监控.他是对系统的整体情况进行统计,不足之处是无法对某个进程进行深 ...
最新文章
- 计算机管理 未分配磁盘,win7系统硬盘(未分配磁盘)如何重新建立扩展分区?
- Play 1.x框架学习之六:未登陆拦截机制 (Not Login intercept In play framework)
- U-Boot的启动信息和命令使用
- linux中 probe函数的何时调用的?
- OAuth2(一)——核心概念
- cobbler工作流分析
- 1.php查询数据,查询数据 - ThinkPHP 5.1 完全开发手册
- [转]解决IE下CSS背景图片闪烁的Bug
- Nacos Spring Boot 快速开始
- TCP协议连环12问
- NMF(非负矩阵分解)的场景应用
- ElasticSearch全文搜索引擎之查询API篇
- 【盘点】2017美国人工智能专业最好的20所大学(附地理位置)Ⅱ
- 面试题——红黑树,B树、B+树
- MySQL期末复习题(题库)
- CF1467C Three Bags(思维)
- microLite_timer,简洁、小巧精干的软件定时器
- 哈佛大学联合团队新突破:在计算过程中实现量子纠错
- Weka package manager 出错的解决办法
- 嵌入式Linux开发_Ping来Ping去