1、Linux 中 iostat命令找不到 报错 command not found
解决办法:安装 sysstat 软件包
执行 yum install sysstat 进行安装
2、磁盘瓶颈
重要的三个指标:
- %util : 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)
- iowait : 平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
- svctm : 平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)
iostat 查看IO信息。如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
另外还需要注意 iowait 这个值,iowait 值高就意味着磁盘缓慢或负载过大。还有不要信任 svctm 这个字段。
监控 swap 和 系统分区,要确保 virtual memory 不是文件系统I/O 的瓶颈。
磁盘瓶颈可以通过 pidstat -d 定位程序。
3、指令与常用判断指标
iosta -x
iostat -x 1(每隔一秒输出一下)
① %util (越小越好,接近100%则IO达到瓶颈)
Percentage of CPU time during which I/O requests were issued to the device (bandwidth utilization for the device).Device saturation occurs when this value is close to 100%.
注意:对于RAID磁盘组或者SSD而言,iostat中的%util就算超过了100%也未必存在瓶颈。
② svctm“平均每次设备I/O操作的服务时间 (毫秒)”
The average service time (in milliseconds) for I/O requests that were issued to the device.
- svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好;
- iowait的值远高于svctm的值,则表示I/O队列等待太长,系统上运行的应用程序将变慢,此时可以通过更换更快的硬盘来解决问题
③ iowait 越小越好,最好是0
4、运行效果和其他指标
- 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的单位为毫秒)。