面试官:磁盘 IO 变高,你怎么分析?

本文介绍了如何分析和定位Java应用的IO性能问题。通过使用工具如iostat、iotop和pt-ioprofile,可以查看磁盘使用率、监控IO负载和追踪具体进程的IO行为。当%util接近100%时,可能存在磁盘瓶颈。iotop能显示哪些线程消耗IO最多,而pt-ioprofile则能深入到文件级别的IO分析,帮助定位问题源头,例如在示例中,问题源于jetty的读取操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下内容转载自 https://www.toutiao.com/i6888943114816324103/

java互联网架构2020-10-29 15:37:39

工具准备:

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负载较高,接下来我们就来定位具体的负载来源

面试官:磁盘 IO 变高,你怎么分析?

 

%util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)

如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。

面试官:磁盘 IO 变高,你怎么分析?

 

4、安装iotop 命令:

安装命令:yum install iotop iotop 查看哪个线程耗IO比较高、按 o 只显示有磁盘 IO 活动的进程。

面试官:磁盘 IO 变高,你怎么分析?

 

5、pt-ioprofile定位负载来源文件

pt-ioprofile --profile-pid=1236 --cell=sizes

pt-ioprofile的原理是对某个pid附加一个strace进程进行IO分析。

面试官:磁盘 IO 变高,你怎么分析?

 

6、对于定位问题更有用的是通过IO的吞吐量来进行定位。使用参数 --cell=sizes,该参数将结果已 B/s 的方式展示出来

pt-ioprofile --profile-pid=1236 --cell=sizes

从上图可以看出IO负载的主要来源是jetty。

并且压力主要集中在读取上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值