iostat[参数][时间][次数]
如
[root@localhost data]# iostat -dm 1 10
Linux 3.10.0-957.el7.x86_64 (localhost.localdomain) 12/05/2020 _x86_64_ (32 CPU)
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 8.44 0.09 0.07 1468679 1034484
sdb 170.63 1.40 3.53 22094563 55523739
参数 -d 表示,显示设备(磁盘)使用状态;-m列强制为MB单位;1 10表示,数据显示每隔1秒刷新一次,共显示10次。
tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)。“一次传输"意思是"一次I/O请求”。多个逻辑请求可能会被合并为"一次I/O请求"。"一次传输"请求的大小是未知的。
MB_read/s:每秒从设备(drive expressed)读取的数据量;
MB_wrtn/s:每秒向设备(drive expressed)写入的数据量;
MB_read:读取的总数据量;
MB_wrtn:写入的总数量数据量;
-x 参数
iostat还有一个比较常用的选项-x,该选项将用于显示和io相关的扩展数据。
[root@localhost data]# iostat -xm 1 10
Linux 3.10.0-957.el7.x86_64 (localhost.localdomain) 12/05/2020 _x86_64_ (32 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.98 0.00 0.83 0.10 0.00 98.09
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 16.76 2.42 3.72 4.73 0.09 0.07 38.58 0.05 5.94 11.04 1.94 0.49 0.41
sdb 0.08 7.29 92.75 77.89 1.40 3.53 59.21 0.14 0.83 0.39 1.36 0.66 11.24
rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);
wrqm/s:每秒这个设备相关的写入请求有多少被Merge;
r/s: 每秒完成的读 I/O 设备次数。即 rio/s
w/s: 每秒完成的写 I/O 设备次数。即 wio/s
rMB/s: 每秒读M字节数。
wMB/s: 每秒写M字节数。
avgrq-sz 平均请求扇区的大小
avgqu-sz 是平均请求队列的长度。毫无疑问,队列长度越短越好。
await: 每一个IO请求的处理的平均时间(单位是微秒毫秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。
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。