性能瓶颈定位更快更准:ARMS 持续剖析能力升级解析

简介: 本文介绍了阿里云ARMS持续剖析技术,助力企业快速定位云原生应用的性能瓶颈。通过代码热点、CPU热点和内存热点分析,结合AI Copilot与差分火焰图功能,实现高效问题诊断与优化验证,全面提升系统性能与稳定性。

持续剖析介绍


随着软件技术发展迭代,很多企业软件系统也逐步从单体应用向云原生微服务架构演进,一方面让应用实现高并发、易扩展、高开发敏捷度等效果,但此外也让软件应用链路变得越来越长,依赖的各种外部技术越来越多,一些线上问题排查起来变得困难重重。

尽管经过过去十几年的发展,分布式系统与之对应的可观测技术快速演进,在一定程度上解决了很多问题,但有一些问题定位起来仍然很吃力,如下图是几个非常有代表性的线上常见问题:

图1 CPU持续性出现波峰

图2 堆内存空间用在了哪里

图3 Trace调用链无法定位到耗时根因

持续性能剖析技术是一种通过采集应用相关线程在申请相关资源时的方法栈状态信息,再通过火焰图等可视化技术绘制出对应资源使用分布情况,最后,确定相关时段特定资源波动根因的一种强有力技术。


开箱即用的持续剖析能力

阿里云应用可观测产品 -  应用实时监控服务 ARMS 早在 2022 年就上线了持续剖析产品能力,帮助用户定位常见的性能方面疑难问题:

具体而言,其主要包含以下 3 块核心功能:

代码热点【1】:其通过墙钟热点关联 Trace 信息,可帮助用户定位:

  • 当业务太复杂,偶发性慢调用无法复现时,代码热点可为您还原代码真实方法层面的执行轨迹。
  • 当调用链中因为缺失对应用代码非框架层面的方法埋点时,代码热点帮您还原对应缺失埋点的实际方法调用耗时。

CPU 热点【2】:通过定时采集正在执行 CPU 线程的方法栈快照,帮助用户定位:

  • 当系统 CPU 使用率较高时,帮助您快速定位导致 CPU 消耗高的相关业务逻辑方法栈。

内存热点【3】:通过记录线程每次触发堆内存分配阈值时的内存分配大小/次数,及对应方法栈快照,帮助用户定位:

  • 当系统 JVM 堆内存利用率高时,帮助您快速定位导致堆内存申请量/申请次数高的相关业务逻辑方法栈。

经过过去几年的大量客户使用和持续演进优化,近期,我们在产品功能易用性上进行了一系列升级,本文接下来对其中重要升级进行一一介绍。

优化存储计算引擎:让数据检索如丝般流畅高效

火焰图数据结构复杂,无论是大数据量的存储还是聚合计算都存在不小的挑战,因此,业界一些产品的常见做法是仅支持临时开启功能采集一段时间数据以及较短时间间隔的数据聚合分析,虽然使用过程略显繁琐,但在一定程度上可以实现辅助排查一般性能瓶颈问题,当遇到一些不易复现的场景问题时,问题定位成本就会非常的高!

本次产品升级后,我们在数据格式和查询引擎方面都做了大量优化,持续剖析查询时间间隔和对象从之前的仅支持 1/5/15 分钟数据聚合效果到现在的天级别、多实例、多线程等维度的秒级聚合,让用户聚合范围不仅广还更细,更好地定位各种性能问题

AI Copilot 驱动火焰图分析:一键洞察性能热点

过去我们从用户侧了解的情况来看,虽然火焰图工具对于排查性能问题非常有效,但是火焰图的阅读对大量客户都存在较大阻碍。因此,我们最新版持续剖析支持基于 AI Copilot 分析火焰图,让不懂火焰图阅读的用户,也能低成本地洞察火焰图中的性能瓶颈。

效果演示

1. 应用开启持续剖析后,在控制台选择对应应用,以 CPU 热点问题举例,在下图所示的火焰图页面中,点击火焰图右上角的 AI Copilot 分析紫色魔法棒触发进行分析:

2. 针对上述火焰图,Copilot 快速给出了分析报告和建议:

3. 从报告结果中可见,java.util.LinkedList.node(int) 方法在火焰图中拥有较长的耗时,CPU 占比较大:

4. 除了分析和建议,用户还可以提供部分隐匿关键信息的代码片段,让模型结合上下文,给出有针对性的代码优化建议。

5. 在应用完成代码调整优化后,还可以基于持续剖析能力生成的火焰图回归验证优化结果。

差分火焰图:精准对比性能差异

差分火焰图通过对比两段时间内的性能数据,生成差分火焰图(红色表示性能下降,蓝色表示性能提升),找出不同时段性能显著变化的函数。其对应用性能在一段时间前后有差异变化的场景定位非常有帮助。在新版持续性能剖析中,提供了开箱即用的差分火焰图分析能力。

效果演示

1. 应用开启持续剖析后,在控制台选择对应应用,例如CPU热点问题定位为例,点击页面左上角的“数据对比”按钮生成前后两段时间的查分火焰图:

2. 根据生成的差分火焰图,可以基于使用 AI Copilot 分析火焰图查看不同时段的差分热点:



来源  |  阿里云可观测公众号

相关实践学习
通过轻量消息队列(原MNS)主题HTTP订阅+ARMS实现自定义数据多渠道告警
本场景将自定义告警信息同时分发至多个通知渠道的需求,例如短信、电子邮件及钉钉群组等。通过采用轻量消息队列(原 MNS)的主题模型的HTTP订阅方式,并结合应用实时监控服务提供的自定义集成能力,使得您能够以简便的配置方式实现上述多渠道同步通知的功能。
相关文章
|
机器学习/深度学习 弹性计算 前端开发
阿里云服务器热门实例选择解析:e/u1/c7/c8i/c9i/c8y实例适用场景价格对比参考
通过阿里云的活动购买云服务器时,除了轻量应用服务器和经济型e及通用算力型u1实例之外,对于想要购买2核4G、4核8G、8核16G等配置的用户来说,还可以选择活动内的计算型c7/c8i/c9i/c8y等热门实例规格。c7属于第七代云服务器实例,c8i和c8y均属于第八代云服务器实例实例,而计算型c9i则属于最新第九代云服务器实例,本文主要为大家详细介绍了阿里云服务器的实例规格是什么,有什么用,并汇总了阿里云轻量应用服务器和e/u1/c7/c8i/c9i/c8实例规格的适用场景,以供大家了解和选择适合自己的需求的实例规格。
|
人工智能 搜索推荐 API
AI-Compass DeepSearch深度搜索生态:集成阿里ZeroSearch、字节DeerFlow、MindSearch等前沿平台,实现超越传统关键词匹配的智能信息检索革命
AI-Compass DeepSearch深度搜索生态:集成阿里ZeroSearch、字节DeerFlow、MindSearch等前沿平台,实现超越传统关键词匹配的智能信息检索革命
AI-Compass DeepSearch深度搜索生态:集成阿里ZeroSearch、字节DeerFlow、MindSearch等前沿平台,实现超越传统关键词匹配的智能信息检索革命
|
Arthas 监控 Java
Arthas profiler(使用async-profiler对应用采样,生成火焰图)
Arthas profiler(使用async-profiler对应用采样,生成火焰图)
2187 10
|
数据采集 Arthas 数据可视化
解密 ARMS 持续剖析:如何用一个全新视角洞察应用的性能瓶颈?
解密 ARMS 持续剖析:如何用一个全新视角洞察应用的性能瓶颈?
1300 90
解密 ARMS 持续剖析:如何用一个全新视角洞察应用的性能瓶颈?
|
1月前
|
人工智能 缓存 自然语言处理
Qwen3.7-Max性能全解:Agent长程能力、推理速度与成本控制深度评测
Qwen3.7-Max作为阿里云通义千问2026年推出的纯文本旗舰大模型,核心定位是面向Agent时代的全能推理基座,专为复杂长程智能体任务、高强度工程开发与自动化流程打造。相比前代模型,Qwen3.7-Max实现了Agent能力的质的飞跃,同时在推理耗时、调用成本上完成大幅优化,在多项权威评测中登顶国产、跻身全球前列,成为企业级智能体开发、工程研发与自动化场景的首选模型。本文基于2026年最新实测数据,全面解析Qwen3.7-Max的Agent能力突破、推理效率提升与成本优化细节,为用户提供客观、精准的性能参考。
498 0
|
9月前
|
监控 算法 搜索推荐
JVM性能优化实战手册:从监控到调优策略
本文基于DataBuff监控数据,系统探讨JVM性能优化实战,涵盖监控体系构建、GC调优、内存与线程管理等关键策略。通过调整堆大小、启用G1回收器等参数优化,有效降低Full GC频次,提升应用稳定性,为Java性能调优提供可落地的实践指南。(238字)
|
安全 容灾 网络安全
阿里云高防
阿里云高防
|
消息中间件 Java Kafka
Apache Kafka - 灵活控制Kafka消费_动态开启/关闭监听实现
Apache Kafka - 灵活控制Kafka消费_动态开启/关闭监听实现
2604 1
|
开发框架 缓存 前端开发
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(11) -- 下拉列表的数据绑定以及自定义系统字典列表控件
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(11) -- 下拉列表的数据绑定以及自定义系统字典列表控件