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

本文涉及的产品
应用实时监控服务-应用监控,每月50GB免费额度
简介: 本文介绍了阿里云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订阅方式,并结合应用实时监控服务提供的自定义集成能力,使得您能够以简便的配置方式实现上述多渠道同步通知的功能。
相关文章
|
3月前
|
SQL 存储 关系型数据库
PostgreSQL窗口函数避坑指南:如何让复杂分析查询提速300%?
本文基于真实企业级案例,深入剖析PostgreSQL窗口函数的执行原理与性能陷阱,提供8大优化策略。通过定制索引、分区裁剪、内存调优及并行处理等手段,将分钟级查询压缩至秒级响应。结合CTE分阶段计算与物化视图技术,解决海量数据分析中的瓶颈问题。某金融客户实践表明,风险分析查询从47秒降至0.8秒,效率提升5800%。文章附带代码均在PostgreSQL 15中验证,助您高效优化SQL性能。
132 0
|
C++ Python
VS Code按住ctrl不能跳转到定义/函数(Python)
VS Code按住ctrl不能跳转到定义/函数(Python)
3708 0
VS Code按住ctrl不能跳转到定义/函数(Python)
|
14天前
|
人工智能 监控 算法
构建时序感知的智能RAG系统:让AI自动处理动态数据并实时更新知识库
本文系统构建了一个基于时序管理的智能体架构,旨在应对动态知识库(如财务报告、技术文档)在问答任务中的演进与不确定性。通过六层设计(语义分块、原子事实提取、实体解析、时序失效处理、知识图构建、优化知识库),实现了从原始文档到结构化、时间感知知识库的转化。该架构支持RAG和多智能体系统,提升了推理逻辑性与准确性,并通过LangGraph实现自动化工作流,强化了对持续更新信息的处理能力。
85 3
|
2月前
|
机器学习/深度学习 运维 监控
智能运维Agent:自动化运维的新范式
在数字化转型浪潮中,智能运维Agent正重塑运维模式。它融合人工智能与自动化技术,实现从被动响应到主动预防的转变。本文详解其四大核心功能:系统监控、故障诊断、容量规划与安全响应,探讨如何构建高效、可靠的自动化运维体系,助力企业实现7×24小时无人值守运维,推动运维效率与智能化水平全面提升。
283 0
|
2月前
|
人工智能 安全 调度
线上观看人次近 2 万,龙蜥社区走进中兴通讯 MeetUp 圆满结束
近 50 位技术专家共同探讨了 AI 在系统领域的应用和挑战,为 AI 时代国产操作系统的核心竞争力塑造贡献力量。
|
4月前
|
人工智能 运维 Anolis
|
7月前
|
人工智能 边缘计算 运维
容器化浪潮下的AI赋能:智能化运维与创新应用
近年来,容器技术以其轻量、高效、可移植的特性成为云原生时代的基石,推动应用开发和部署方式革新。随着容器化应用规模扩大,传统运维手段逐渐力不从心。AI技术的引入为容器化生态带来新活力,实现智能监控、自动化故障诊断与修复及智能资源调度,提升运维效率和可靠性。同时,AI驱动容器化创新应用,如模型训练、边缘计算和Serverless AI服务,带来更多可能性。未来,AI与容器技术的融合将更加紧密,推动更智能、高效的运维平台和丰富的创新应用场景,助力数字化转型。
|
6月前
|
机器学习/深度学习 编解码 人工智能
魔搭社区模型速递(3.2-3.8)
🙋魔搭ModelScope本期社区进展:1340个模型,220个数据集,🎨91个创新应用,📄 8篇内容
355 9
|
6月前
|
运维 Kubernetes Cloud Native
云栖实录 | 智能运维:云原生大规模集群GitOps实践
云栖实录 | 智能运维:云原生大规模集群GitOps实践
190 1