Linux性能监控命令 - iostat & 监控I/O状态

2022年12月27日 1514点热度 0人点赞 0条评论

描述

iostat命令用于监视系统输入/输出设备的加载情况,方法是观察设备的活动时间与其平均值的关系转移率。iostat命令生成报告,可用于更改系统配置,以便更好地平衡输入/输出负载物理磁盘。

安装方法

dnf install sysstat

语法

iostat [ 选项 ] [ <时间间隔> [ <次数> ] ]
<h2>常用参数</h2>

-c:显示CPU利用率
-d:显示设备利用率
-t:显示时间戳
-x:显示详细磁盘指标
-y:跳过第一条数据
-k:显示单位为KB
-m:显示单位为MB
-p:指定主设备,显示主设备下所有磁盘信息

常见用法

注意:iostat 命令第一次输出数据不准确,需要指定 -y 跳过第一条输出

监控 CPU 利用率

iostat -c 1 3 # 输出3次,每次间隔1秒

%user :用户空间占用的CPU
%nice :改变过优先级进程占用的CPU
%system:内核空间占用的CPU
%iowait:CPU 等待 IO 的占比(若该占比较高,硬盘可能存在 I/O 瓶颈)
%steal :管理程序(hypervisor)为另一个虚拟进程提供服务而等待的虚拟CPU占比
%idle :空闲的CPU(若空闲较大,但系统响应慢,有可能CPU等待内存分配,应适当增加内存容量;若空闲持续低于 1%,则系统的CPU处理能力较低)

监控 TPS 磁盘读写

iostat -d 1 3 # 输出3次,每次间隔1秒 
Device :设备名
tps :每秒 I/O 数(连续读写之和)
kB_read/s:每秒从设备读取的数据(单位:KB)
kB_wrtn/s:每秒从设备写入的数据(单位:KB)
kB_read :读取的总数据量(单位:KB)
kB_wrtn :写入的总数据量(单位:KB)

监控 磁盘 利用率

iostat -dx 1 3 # 输出3次,每次间隔1秒

Device :磁盘名
rrqm/s :每秒进行的 merge 读数目
wrqm/s :每秒进行的 merge 写数目
r/s :每秒读 I/O 次数
w/s :每秒写 I/O 次数
rkB/s :每秒读设备的字节数(单位:K字节)
wkB/s :每秒写设备的字节数(单位:K字节)
avgrq-sz:平均每次设备I/O操作的数据大小
avgqu-sz:平均I/O队列长度
r_await :每个读操作的平均所需时间(包含列队等待时间)
w_await :每个写操作的平均所需时间(包含列队等待时间)
await :平均每次设备 IO 操作的等待时间(平均响应时间不超过5ms,单位:ms)
svctm :平均每次设备 IO 操作的服务时间(单位:ms)
%util :磁盘繁忙程度(注意:每块磁盘后面都有表示是否繁忙)
如果 svctm 与 await 比较接近,说明 IO 几乎没有等待。
如果 await 远高于 svctm ,说明 IO 队列太长 响应太慢,需要优化,可以从 avgqu-sz 队列长度看出来。

指定某块磁盘

iostat /dev/vda1 1 3

只需要在参数或者命令后面指定设备即可
iostat /dev/vda2 1 3
iostat 1 3 /dev/sda2
iostat -tx /dev/sda2

指定输出单位

指定单位KB(-k)

指定单位MB(-m)

常见组合用法

同时查看CPU和磁盘读写(输出时间,不输出第一次无意义的信息)

iostat -cdty 1 3 # c指定CPU,d指定磁盘,t每次输出时间,y跳过第一次无意义的数据 

输出CPU和磁盘利用率(输出时间,不输出第一次无意义的信息)

iostat -xty 1 3 # x指定磁盘利用率,t每次输出时间,y跳过第一次无意义的数据 

指定一块磁盘,查看磁盘读写(输出时间,不输出第一次无意义的信息)

iostat -dty /dev/sda1 1 3 # d执行磁盘读写,t每次输出时间,y跳过第一次无意义的数据 

路灯

这个人很懒,什么都没留下

文章评论