Linux性能监控命令系列之 iostat

大家好!我是Sean!

已经连续撸了3天的Linux性能监控命令,今天接着撸命令,iostat!

很早就接触过iostat,说起来和他也是老朋友啦!接下来给大家介绍下这位老朋友!

iostat(监视系统输入输出设备和CPU的使用情况)

iostat命令 被用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析,安装命令十分简单,CentOS上执行yum install sysstat即可。

命令参数

-c:仅显示CPU使用情况;
-d:仅显示设备利用率;
-k:显示状态以千字节每秒为单位,而不使用块每秒;
-m:显示状态以兆字节每秒为单位;
-p:仅显示块设备和所有被使用的其他分区的状态;
-t:显示每个报告产生时的时间,单位:秒;
-V:显示版号并退出;
-x:显示扩展状态。

常用命令

显示所有信息
iostat

显示指定磁盘信息
iostat -d /dev/sda

仅显示cpu信息
iostat -c

显示磁盘基本IO信息
iostat -d

以M为单位显示所有信息
iostat -m

显示磁盘详细IO信息
iostat -d -x -k

指定定时输出,后面跟上定时时长,不指定则输出一次
指定输出次数,后面跟上输出次数,不指定则一直输出
例如:每隔1秒刷新显示,共刷新3次,命令可以写成这样
iostat 1 3
iostat -d /dev/sda 1 3
iostat -c 1 3
iostat -d 1 3
iostat -m 1 3
iostat -d -x -k 1 3

命令详解

显示所有信息

iostat
%user		CPU处在用户模式下的时间百分比
%nice		CPU处在带NICE值的用户模式下的时间百分比
%system		CPU处在系统模式下的时间百分比
%iowait		CPU等待输入输出完成时间的百分比
%steal		管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比
%idle		CPU空闲时间百分比
tps			该磁盘每秒的传输次数
kB_read/s	每秒从磁盘读取的数据量
kB_wrtn/s	每秒向磁盘写入的数据量
kB_read		读取的总数据量
kB_wrtn		写入的总数据量
数据查看技巧:
1. 如果%iowait的值过高,说明写磁盘等待现象比较严重,磁盘I/O存在瓶颈,考虑进一步排查进程级别的IO情况
2. 如果%idle值高,说明CPU是比较空闲的,但是明显感觉系统反应迟钝,可能是CPU等待分配内存,可能需要加内存了。
3. 如果%idle值持续低于10,可能是CPU的处理能力不足了,需要考虑下规格了。

显示指定磁盘信息

iostat -d /dev/sda

仅显示cpu信息

iostat -c

显示磁盘基本IO信息

iostat -d

以M为单位显示所有信息

iostat -m

显示磁盘详细IO信息

iostat -d -x -k
Device		监测设备名称
rrqm/s		每秒需要读取需求的数量
wrqm/s		每秒需要写入需求的数量
r/s			每秒实际读取需求的数量
w/s			每秒实际写入需求的数量
rsec/s		每秒读取区段的数量
wsec/s		每秒写入区段的数量
rkB/s		每秒实际读取的大小,单位为KB
wkB/s		每秒实际写入的大小,单位为KB
avgrq-sz	需求的平均大小区段
avgqu-sz	需求的平均队列长度
await		等待I/O平均的时间(milliseconds)
r_await		读取等待I/O平均的时间(milliseconds)
w_await		写入等待I/O平均的时间(milliseconds)
svctm		I/O需求完成的平均时间
%util		被I/O需求消耗的CPU百分比
数据查看技巧:
如果%util接近100%,说明产生的I/O请求太多,I/O系统已经满负荷,idle小于70% IO压力就较大了,一般读取速度有较多的wait。

思维导图总结

今天的分享就到这里啦!感谢各位的阅读!码字不易,如果本文对你有帮助的话,帮忙点个赞吧~哈哈。

性能监控命令系列结束后会将思维导图分享出来,欢迎关注公众号“程序员Sean”。

原文地址:https://www.cnblogs.com/ws007/p/13936942.html