iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析
iostat命令用来查看磁盘IO的读写情况,用法如下:
安装iostat命令
[root@mysql ~]# yum install -y sysstat
[root@mysql ~]# iostat // 只显示一次 [root@mysql ~]# iostat 1 //每秒显示一次 [root@mysql ~]# iostat 1 5 //每秒显示一次,总共显示5次
[root@mysql ~]# iostat Linux 3.10.0-957.el7.x86_64 (mysql) 01/27/2019 _x86_64_ (24 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 3.38 0.00 2.76 0.01 0.00 93.85 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 1.55 0.07 25.26 9303768 3516387672
说明:
cpu属性值说明:
%user:CPU处在用户模式下的时间百分比。
%nice:CPU处在带NICE值的用户模式下的时间百分比。
%system:CPU处在系统模式下的时间百分比。
%iowait:CPU等待输入输出完成时间的百分比。
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
%idle:CPU空闲时间百分比。
备注:
如果%iowait的值过高,表示硬盘存在I/O瓶颈
如果%idle值高,表示CPU较空闲
如果%idle值高但系统响应慢时,可能是CPU等待分配内存,应加大内存容量。
如果%idle值持续低于10,表明CPU处理能力相对较低,系统中最需要解决的资源是CPU。
# Device:具体的磁盘 # tps:设备每秒的传输次数,也就是每秒多少次IO请求 # kB_read/s:每秒从设备读取的数据量 # kB_wrtn/s:每秒向设备写入的数据量 # kB_read:读取的总数据量 # kB_wrtn:写入的总数据量
查看设备使用率(%util)、响应时间(await)
# 【-d 显示磁盘使用情况,-x 显示详细信息】 # d: detail iostat -d -x -k 1 1
iostat -d -x -k 1 1 Linux 2.6.32-642.el6.x86_64 (localhost.localdomain) 09/06/2019 _x86_64_ (24 CPU) Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0.02 260.45 2.58 137.11 174.79 1703.96 26.90 0.08 0.57 0.92 0.57 0.06 0.87
说明:
rrqm/s: 每秒进行 merge 的读操作数目.即 delta(rmerge)/s
wrqm/s: 每秒进行 merge 的写操作数目.即 delta(wmerge)/s
%util: 一秒中有百分之多少的时间用于 I/O
如果%util接近100%,说明产生的I/O请求太多,I/O系统已经满负荷
idle小于70% IO压力就较大了,一般读取速度有较多的wait。