关于性能分析:案例介绍使用AOps性能热点火焰图进行性能诊断

2次阅读

共计 1351 个字符,预计需要花费 4 分钟才能阅读完成。

上篇文章 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 里同时启动降级前后的两个利用):

可见,Kafka 客户端利用的性能呈现了显著的降落,但此时 Kafka 服务端较轻载,CPU 0.7%,内存 16.8%,阐明性能劣化是因为客户端利用的问题导致。Kafka 服务端资源状况如下:

2. 性能问题诊断

通过降级前后的火焰图比拟能够看出,降级后的 CPU 性能次要耗费在字符串 format 处理函数上。对于 Kafka 生成端利用,个别存在大量字符串操作,而字符串处理函数 format 性能较低,与 StringBuilder 办法相比有几倍甚至几十倍的性能差距,可见字符串 format 函数是导致性能升高的次要起因。

案例 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

流量注入前后,零碎利用指标及火焰图如下图所示:

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

咱们能够通过火焰图比拟视图进一步剖析这个问题,下图右边的火焰图是注入故障前的火焰图,左边为注入故障期间的火焰图,比照能够看到故障注入期间多个 iperf3 这个过程。

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

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

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

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

A-Ops 装置部署手册:

https://gitee.com/Vchanger/a-…

gala-gophe 组件装置部署阐明:

https://gitee.com/openeuler/g…

欢送大家应用 A -Ops 性能热点火焰图,也欢送大家交换和反馈意见

正文完
 0