iostat是I/O statistics(输入/输出统计)的缩写,iostat提供对系统整个磁盘活动统计情况。
iostat用法:iostat [ -c | -d ] [ -k ] [ -t ] [ -V ] [ -x [ device ] ] [ interval [ count ] ]
-c:CPU的使用情况;-d:磁盘的使用情况;-k:表示每秒按kilobytes字节显示数据;-t:打印汇报的时间;-v表示打印出版本信息和用法;-x:device指定要统计的设备名称,默认为所有的设备;interval指每次统计间隔的时间;count指按照这个时间间隔统计的次数
root@xx]# iostat -d -k -t -x 2
Linux 2.6.32-504.16.2.el6.x86_64 (VM_163_122_centos) 09/11/2018 _x86_64_ (8 CPU)
09/11/2018 12:30:13 PM
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
vda 0.00 1.73 0.09 1.55 0.98 13.11 17.15 0.01 4.94 2.03 0.33
vdb 0.03 393.42 7.15 85.06 289.04 1850.79 46.41 0.42 4.51 0.93 8.54
09/11/2018 12:30:15 PM
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
vda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
vdb 0.00 2096.50 0.50 115.50 2.00 7408.00 127.76 32.78 260.91 6.44 74.75
09/11/2018 12:30:17 PM
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
vda 0.00 0.00 0.00 0.50 0.00 2.00 8.00 0.00 4.00 4.00 0.20
vdb 0.00 1128.00 0.50 23.00 8.00 5566.00 474.38 12.19 578.47 42.34 99.50
rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s
wrqm/s: 每秒进行 merge 的写操作数目。即 delta(wmerge)/s
r/s: 每秒完成的读 I/O 设备次数。即 delta(rio)/s
w/s: 每秒完成的写 I/O 设备次数。即 delta(wio)/s
rsec/s: 每秒读扇区数。即 delta(rsect)/s
wsec/s: 每秒写扇区数。即 delta(wsect)/s
rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算)
wkB/s: 秒写K字节数。是 wsect/s 的一半。(需要计算)
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio)
avgqu-sz: 均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。
await: 平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)
%util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)
上图实例中,util: 接近百分之百,await:IO等待时间也很长,说明磁盘遇到了瓶颈
以上实例为游戏合服过程中出现问题,主要原因有三点:
1:购买的是腾讯云普通云硬盘
2:自建mysql数据库性能不高
3:合服数据很大