上一篇文章A-Ops性能火焰图-云原生全栈持续性能监控工具分享了A-Ops性能火焰图的特点。本文将分享两个基于A-Ops性能热点火焰图进行性能诊断的实际案例,介绍如何利用火焰图快速定位系统或应用性能问题,加深大家对A-Ops火焰图特性的理解。案例1云原生场景下Java应用性能问题诊断1.场景及案例介绍某Kafka生产者客户端Java应用升级版本后,性能下降。性能从222WTPS下降到65WTPS,吞吐量从337MB/s下降到95.9MB/s,如下图(为了对比,升级前后两个应用在不同的时间同时启动PODs):可以看出Kafka客户端应用性能下降明显,但是此时Kafka服务器负载轻,CPU0.7%,内存16.8%,说明性能下降是由于客户端应用程序。Kafka服务器资源如下:2.性能问题诊断通过对比升级前后的火焰图可以看出,升级后的CPU性能主要消耗在字符串格式处理功能上。对于Kafka生成器应用,一般会有大量的字符串操作,字符串处理函数格式性能较低。与StringBuilder方法相比,存在数倍甚至数十倍的性能差距。可见字符串格式函数是导致性能下降的主要原因。原因。案例2CPU抖动性能故障诊断案例一、场景及案例介绍在生产环境中,经常会遇到一些零星的CPU抖动问题,会对应用的性能造成一定的影响。而且问题定位比较困难。2.性能问题的诊断为了模拟上述偶发故障,我们通过iperfstreaming注入2分钟的故障,然后多角度分析故障注入前后的火焰图数据,进而诊断CPU抖动性能故障。10:36-10:38通过iperf3注入2分钟流量,命令如下:iperf3-c192.168.122.115-p5201-i10-t120-P100-N-M100-b前后10000M流量注入,系统应用指标和火焰图如下图所示:从上图可以看出,在流量注入期间,CPU占用率从平均22%上升到33%,应用性能从232wtps下降到215wtps。入住率为8.96%。我们可以通过火焰图对比视图进一步分析这个问题。下图中左边的火焰图是故障注入前的火焰图,右边的火焰图是故障注入时的火焰图。通过对比,我们可以看到在故障注入过程中有多个iperf3进程。另外,我们还可以通过火焰图diff视图来分析这个问题。请参考下图。火焰图红色部分是故障注入时新增的进程,可以定位iperf3为本次CPU抖动和应用性能下降的根本原因。.通过A-Ops性能热点火焰图,开发人员和维护人员可以轻松预测潜在问题并定位已经发生的问题。安装A-Opsperformancehotspotflamegraphgala-ops是一个针对云基础设施故障的应用级/系统级在线诊断工具。火焰图探针stackprobe集成在gala-gopher组件中,用户只需一键安装即可。gala-gopher后,在配置文件中开启或关闭火焰图探针即可使用。A-Ops安装部署手册:https://gitee.com/Vchanger/a-...Gala-gophe组件安装部署说明:https://gitee.com/openeuler/g...欢迎使用A-OpsPerformance热点火焰图,欢迎大家交流反馈
