首页 > 其他 > 详细

磁盘IO

时间:2020-11-21 22:48:19      阅读:24      评论:0      收藏:0      [点我收藏+]

相比于cpu 使用率和内存、磁盘使用率等指标,IO瓶颈往往是我们可能会忽略的地方

 

查看方式两个工具

top  查看iowait 占用的cpu时间百分比

技术分享图片

 

 通常情况这个值很低,都是百分之零点几。但是这个值有欺骗性,因为它记录的是整体的cpu 时间中iowait百分比,有时候这个值不高但是io 确实有了性能瓶颈。

要特别注意:iowait≠IO负载,要看真实的IO负载情况,一般使用iostat –x 命令:

技术分享图片

 

 两个重要指标需要解释下

svctm

可以看到,svctm指的是“平均每次设备I/O操作的服务时间 (毫秒)”,而util指的是“一秒中I/O 操作的利用率,或者说一秒中有多少时间 I/O 队列是非空的。”

util%

我们这里发现util已经接近100%,结合man的说明“Device saturation occurs when this value is close to 100%”可以知道其实目前这台服务器的IO已经到达瓶颈了。

那为什么最前面的cpu统计图的iowait项只有5.5%左右呢?因为这个iowait(也就是top里的wa%)指的是从整体来看,CPU等待IO的耗时占比:
wa -- iowait
Amount of time the CPU has been waiting for I/O to complete.
也就是说,CPU可能拿出一部分时间来等待IO完成(iowait),但从磁盘的角度看,磁盘的利用率已经满了(util%),这种情况下,CPU使用率可能不高,但是系统整体QPS已经上不去了,如果加大流量,会导致单次IO耗时的继续增加(因为IO请求都堵在队列里了),从而影响系统整体的处理性能。

 

确认了IO负载过高后,可以使用iotop工具具体查看IO负载主要是落在哪个进程上了。

通过iotop 查看io 耗时长的进程,TID也就是进程id 

 

再通过lsof  -a   pid     查看进程打开了哪些文件,最后针对服务代码和文件系统等进行优化。

磁盘IO

原文:https://www.cnblogs.com/fanggege/p/14016634.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!