案例介绍:使用A-Ops性能热点火焰图进行性能诊断

本文通过两个案例展示了如何利用A-Ops性能火焰图进行云原生环境下的性能问题诊断。在Java类应用性能问题中,发现字符串format处理函数是性能瓶颈;在CPU抖动故障中,通过火焰图diff视图定位到iperf3进程是问题根源。读者可了解如何安装和使用A-Ops工具进行性能监测和故障排查。
摘要由CSDN通过智能技术生成

上篇文章​​A-Ops性能火焰图——适用于云原生的全栈持续性能监测工具​​分享了A-Ops性能火焰图的特性。

本文将分享基于A-Ops性能热点火焰图进行性能诊断的2个实际案例,介绍如何使用火焰图快速定位系统或者应用的性能问题,加深大家对A-Ops火焰图特性的理解。

案例1

云原生场景下Java类应用性能问题诊断

1. 场景及案例介绍

某Kafka producer客户端Java应用版本升级后性能出现下降,性能从222W TPS下降到65W TPS,吞吐量从337MB/s下降到95.9MB/s,如下图所示(为了便于比较,在不同POD里同时启动升级前后的两个应用):

案例介绍:使用A-Ops性能热点火焰图进行性能诊断_a-ops

可见,Kafka 客户端应用的性能出现了明显的下降,但此时Kafka服务端较轻载,CPU 0.7%,内存16.8%,说明性能劣化是由于客户端应用的问题导致。Kafka服务端资源情况如下:

案例介绍:使用A-Ops性能热点火焰图进行性能诊断_linux_02

2. 性能问题诊断

通过升级前后的火焰图比较可以看出,升级后的CPU性能主要消耗在字符串format处理函数上。对于Kafka生成端应用,一般存在大量字符串操作,而字符串处理函数format性能较低,与StringBuilder方法相比有几倍甚至几十倍的性能差距,可见字符串format函数是导致性能降低的主要原因。

案例介绍:使用A-Ops性能热点火焰图进行性能诊断_火焰图_03

案例2

CPU抖动类性能故障诊断案例

1. 场景及案例介绍

在生产环境中经常会遇到一些偶发性的CPU抖动问题,这会对应用的性能造成一定的影响,但由于没有必然的规律,故障发现及问题定位比较难。

2. 性能问题诊断

为了模拟上述偶发性的故障,我们通过iperf打流注入2分钟的故障,然后从多个角度分析故障注入前后火焰图的数据,进而对CPU抖动类性能故障进行诊断。

在10:36-10:38通过 iperf3注入2分钟的流量,命令如下:

iperf3 -c 192.168.122.115 -p 5201 -i 10 -t 120 -P 100 -N -M 100 -b 10000M

流量注入前后,系统应用指标及火焰图如下图所示:

案例介绍:使用A-Ops性能热点火焰图进行性能诊断_linux_04

从上图可见,流量注入期间,CPU使用率从平均22%升高到33%,应用性能从232w tps下降到215w tps,火焰图中iperf3进程对CPU的占用为8.96%。

我们可以通过火焰图比较视图进一步分析这个问题,下图左边的火焰图是注入故障前的火焰图,右边为注入故障期间的火焰图,对比可以看到故障注入期间多个iperf3这个进程。

案例介绍:使用A-Ops性能热点火焰图进行性能诊断_a-ops_05

另外,我们还可以通过火焰图diff视图来分析这个问题,参考下图,火焰图红色部分为故障注入期间新增加的进程,进而可以定位到iperf3是造成这次CPU抖动以及应用性能劣化的根因。

案例介绍:使用A-Ops性能热点火焰图进行性能诊断_火焰图_06

通过A-Ops性能热点火焰图,开发者和维护者可以很方便地预测潜在问题和定位已发生问题。

安装A-Ops性能热点火焰图

gala-ops是针对云基础设施灰度故障的应用级/系统级在线诊断工具,火焰图探针stackprobe集成在其中的gala-gopher组件内,用户只需一键安装gala-gopher后,在配置文件中开启或关闭火焰图探针即可使用。

A-Ops安装部署手册:

​https://gitee.com/Vchanger/a-ops-tools#a-ops-tools​

gala-gophe组件安装部署说明:

​https://gitee.com/openeuler/gala-gopher​

欢迎大家使用A-Ops性能热点火焰图,也欢迎大家交流和反馈意见

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

openEuler社区

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值