Linux vmstat命令

时光怂恿深爱的人放手 提交于 2019-12-28 00:32:45

简介

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

安装

yum install -y sysstat

字段解释

在这里插入图片描述

vmstat命令输出的第一行是自从系统重新启动以来所有指标的平均值。

procs

procs代表进程相关参数

字段名 意义 说明
r 等待运行的进程数 如果该值长期大于CPU数,就表示需要添加CPU
b “被阻塞”的进程 最最有可能等待 I/O,但也可能等待其他事情,如果该值比较大并且io下的数据比较大 ,则可能出现了严重的 I/O 争用问题

memory

memory表示内存相关参数

字段名 意义 说明
swpd 正在使用虚拟或或交换内存的大小,单位K swpd的值不为0,但是si、so的值长期为0,是不会影响系统性能的。
free 剩余的物理内存大小 free的值很小,但是si、so的值长期接近为0,是不会影响系统性能的,因为linux系统会先使用内存
buff 缓冲区的内存大小
cache 缓存的内存大小 该值越大说明缓存的文件越多,如果频繁访问的文件被缓存,那么IO的bi会比较小

swap

swap表示交换区相关参数

字段名 意义
si 交换区写入内存的速率(以 KB/秒为单位)
so 内存写到交换区的速率(以 KB/秒为单位)

si、so的值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗,表明物理内存可能不足。应该减少内存需求或增加物理 RAM。

io

字段名 意义 说明
bi 系统向块设备发送数据的速率(以块/秒为单位) 单位是block,这里的块设备是指系统上所有的磁盘和其他块设备,现在的Linux版本块的大小为1024bytes
bo 系统从块设备中读取数据的速率(以块/秒为单位) 块设备每秒发送的块数量,单位是block

bi、bo的值越大system中wa的值就会越大

system

system代表系统相关参数

字段名 意义
in 秒中断数,包括时钟中断
cs 每秒上下文切换数

in、cs的值越大cpu中的sy就越大

cpu

字段名 意义 说明
us 用户进程消耗cpu时间的百分比(Oracle进程) 值越大证明用户进程消耗的cpu时间越多,但当其长期大于50%就要考虑优化算法或采用其他措施
sy 系统进程消耗cpu时间的百分(所有根进程) 值比较大时,证明系统占用cpu时间多,应该采取优化
id cpu空闲时间的百分比 一般情况下us+sy+id=100。当该值小于20时证明cpu不足
wa 等待IO时间 wa过高时,说明io等待比较严重,这可能是由于磁盘大量随机访问造成的,也有可能是磁盘的带宽出现瓶颈。

其他参数

示例

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版本信息
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!