对于开发及运维人员来讲,火焰图是一个经典的定位性能问题的方法。利用火焰图可以可视化系统资源(cpu占用、内存占用、调度、IO等)的占用情况,从而帮助技术人员快速定位资源异常使用的代码级根因,或者观察潜在性能劣化趋势,进而优化系统和应用的性能。

然而,现有流行的火焰图工具往往存在一个或多个局限性,实际应用场景比较有限。因此,openEuler上的开源项目A-Ops中的gala-ops系列组件提供了适用于云原生的全栈持续性能监测火焰图

传统火焰图在实际应用中的痛点

1.传统火焰图工具相对独立,难以对接第三方插件或集成到运维系统,在应用中需要有经验的开发人员手动结合其他调试工具分析定位。

2.由于开销较大,火焰图大多仅仅作为工具在开发和调试阶段被使用,不能在生产环境中常态化部署。所以对于更常见的场景——即实际生产环境中的突发性的性能问题,火焰图并不是定位问题的有效手段。

3.生产环境上中部署的应用类型错综复杂,语言纷繁多样,而且很多应用是会调用不同语言的模块。但是每种火焰图工具往往只针对单一类型的语言。即使同时部署了不同语言的火焰图观测工具,所生成的火焰图数据又难以统一,从系统角度难以观测不同语言应用的性能占比。

4.传统火焰图往往只能观测进程,线程粒度,是host时代的工具。对于云原生系统更关注的容器粒度,传统火焰图无法直观区分。

gala-ops火焰图的四大特性