暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Vmstat命令详解

原创 Hello world 2023-04-18
7086

1 命令概述

vmstat 命令是 Linux/Unix 系统下的一个性能分析工具,用于监测系统的 CPU、内存、I/O 等性能指标。通过使用 vmstat 命令,用户可以快速获取到当前系统的负载情况,帮助进行系统性能调优、故障排查等操作。

vmstat 命令的输出结果可以帮助用户完成以下任务:
1、监测系统的整体负载情况,了解系统的 CPU、内存、磁盘、网络等性能指标,以及进程数量和状态等信息。
2、分析系统性能问题,通过观察系统的 CPU 使用率、内存占用、磁盘 I/O 等指标,可以快速定位系统的性能瓶颈,找到导致系统负载过高、响应变慢等问题的原因。
3、监测系统的稳定性,通过连续监测系统的负载情况,可以识别出系统的周期性波动,以及系统负载变化的规律,从而更好地管理系统资源,保证系统的稳定性。

我们可以在操作系统上输入vmstat命令来系统的各项指标。

[oracle@rac19c01 ~]$ vmstat

图片.png
直接输入这个命令之后,发现他只会有一次输出。
我们可以在后面添加数字 1
[oracle@rac19c01 ~]$ vmstat 1
图片.png
现在就变为每秒刷新一次
如果还要限制输出次数的话,可以在1后面再加上值例如:
[oracle@rac19c01 ~]$ vmstat 1 3
图片.png
表示每秒输出一次,一共输出三次后停止。

2、参数详解

以下是 vmstat 命令输出中各字段的含义:

procs
r:表示处于运行队列中(正在运行或等待运行)的进程数。
b:表示处于不可中断睡眠状态的进程数。
memory
swpd:表示被换出到交换空间的内存大小(单位:KB)。
free:表示空闲内存大小(单位:KB)。
buff:表示用作缓冲区的内存大小(单位:KB)。
cache:表示用作缓存的内存大小(单位:KB)。
swap
si:表示每秒从磁盘读入交换区的数据量(单位:KB)。
so:表示每秒写入到磁盘的交换区数据量(单位:KB)。
I/O
bi:表示每秒从块设备读入的数据量(单位:块,一般为 512 字节)。
bo:表示每秒向块设备写入的数据量(单位:块,一般为 512 字节)。
system
in:表示每秒产生的中断数。
cs:表示每秒上下文切换的次数。
CPU
us:表示用户空间占用 CPU 时间的百分比。
sy:表示内核空间占用 CPU 时间的百分比。
id:表示空闲 CPU 时间的百分比。
wa:表示等待 I/O 的 CPU 时间百分比。
st:表示被虚拟机偷走的 CPU 时间的百分比。

3、常用参数以及基本用法

基本用法

vmstat [-a] [-n] [-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]

参数含义
使用vmstat --help命令可以查看具体参数含义

[oracle@rac19c01 ~]$ vmstat --help
Usage:
 vmstat [options] [delay [count]]
Options:
 -a, --active           active/inactive memory
 -f, --forks            number of forks since boot
 -m, --slabs            slabinfo
 -n, --one-header       do not redisplay header
 -s, --stats            event counter statistics
 -d, --disk             disk statistics
 -D, --disk-sum         summarize disk statistics
 -p, --partition <dev>  partition specific statistics
 -S, --unit <char>      define display unit
 -w, --wide             wide output
 -t, --timestamp        show timestamp
 -h, --help     display this help and exit
 -V, --version  output version information and exit
For more details see vmstat(8).

图片.png

-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版本信息。

4、常用命令
1、做定时任务,监控系统状态

[oracle@rac19c01 ~]$ vmstat 1 20 >> vmstat.log
[oracle@rac19c01 ~]$ cat vmstat.log 

图片.png
这样就可以采集具体某个时间点的系统各项指标了。
2、vmstat -s:使用 vmstat 命令的 -s 选项,可以显示系统的各种统计信息,包括内存总量、内存使用情况、磁盘 I/O 等信息。
[oracle@rac19c01 ~]$ vmstat -s
图片.png

3、vmstat -p [device]:使用 vmstat 命令的 -p 选项,可以显示指定设备的 I/O 统计信息,例如 vmstat -p /dev/sda1 可以查看 sda1 设备的 I/O 情况。
[oracle@rac19c01 ~]$ vmstat -p /dev/sda1
图片.png

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论