磁盘 IO 高分析方法
工具准备:
iotop: http://guichaz.free.fr/iotop/
pt-ioprofile:http://www.percona.com/downloads/percona-toolkit/2.2.1/
io 高分析方法:
1、查看磁盘使用率 df -lh
2、安装 iostat 安装命令:yum install sysstat
3、iostat -d -k 2 查看 IO 情况,哪个磁盘的 IO 负载较高,接下来我们就来定位具体的负载来源
%util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为 use 的单位为毫秒)
如果 %util 接近 100%,说明产生的 I/O 请求太多,I/O 系统已经满负荷,该磁盘可能存在瓶颈。
4、安装 iotop 命令:安装命令:yum install iotop iotop 查看哪个线程耗 IO 比较高、按 o 只显示有磁盘 IO 活动的进程。
5、pt-ioprofile 定位负载来源文件
pt-ioprofile --profile-pid=1236 --cell=sizes
pt-ioprofile 的原理是对某个 pid 附加一个 strace 进程进行 IO 分析。
6、 对于定位问题更有用的是通过 IO 的吞吐量来进行定位。使用参数 --cell=sizes,该参数将结果已 B/s 的方式展示出来
pt-ioprofile --profile-pid=1236 --cell=sizes
从上图可以看出 IO 负载的主要来源是 jetty。
并且压力主要集中在读取上。