点击上方蓝色“方志朋”,选择“设为星标”
回复“666”获取独家整理的学习资料!
工具准备:
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负载较高,接下来我们就来定位具体的负载来源
![](https://i-blog.csdnimg.cn/blog_migrate/85261b42bd9d0db1f81f53dab589bdc7.png)
%util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
![](https://i-blog.csdnimg.cn/blog_migrate/27f803fd37ca72c6d6b13a8e21b09e8c.png)
4、安装iotop 命令:
安装命令:yum install iotop iotop 查看哪个线程耗IO比较高、按 o 只显示有磁盘 IO 活动的进程。
![](https://i-blog.csdnimg.cn/blog_migrate/530299c4c15e0f5265aaea2920aa04fd.png)
5、pt-ioprofile定位负载来源文件
pt-ioprofile --profile-pid=1236 --cell=sizes
pt-ioprofile的原理是对某个pid附加一个strace进程进行IO分析。
![](https://i-blog.csdnimg.cn/blog_migrate/fa3385e981fb66385baaaa17c0f2f57b.png)
6、对于定位问题更有用的是通过IO的吞吐量来进行定位。使用参数 --cell=sizes,该参数将结果已 B/s 的方式展示出来
pt-ioprofile --profile-pid=1236 --cell=sizes
从上图可以看出IO负载的主要来源是jetty。
并且压力主要集中在读取上。
来源 | https://urlify.cn/JNRVJb
热门内容:
最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。
明天见(。・ω・。)ノ♡