Linux硬盘磁盘性能分析命令

Linux就该这么学

命令:
iostat -x -k 1
命令参数说明:
-x  //获得更多统计信息
-k  //某些使用block为单位的列强制使用Kilobytes为单位
1   //数据显示每隔1秒刷新一次

请看一个输出实例:

输出项说明:
Device       //设备对象
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
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 操作,即 delta(use)/s/1000 (因为use的单位为毫秒)

如何用这些数据分析问题?
1、如果 %util 较高几率 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
2、svctm 一般要小于 await (因为同时等待的请求的等待时间被重复计算了)。
    svctm 的大小一般和磁盘性能有关,CPU/内存的负荷也会对其有影响,请求过多也会间接导致 svctm 的增加。
    如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间。
    如果 await 远大于 svctm,说明 I/O 队列太长,应用得到的响应时间变慢;
    如果响应时间超过了可以容许的范围(%util  100%),这时可以考虑更换更快的磁盘。

本文由 CentOS中文站 - 专注Linux技术 作者:centos 发表,其版权均为 CentOS中文站 - 专注Linux技术 所有,文章内容系作者个人观点,不代表 CentOS中文站 - 专注Linux技术 对观点赞同或支持。如需转载,请注明文章来源。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注