定位、排查应用卡顿问题的原因有诸多难点。针对这类问题,ARMS提供线程剖析、调用链路诊断、接口监控等一套解决方案,帮助您快速准确定位应用中所有慢调用,进而解决应用卡顿问题。

问题分析

网站卡顿、页面加载过慢是互联网应用最常见的问题之一。排查、解决网站卡顿、页面加载过慢等问题过程复杂,耗时较长,原因如下:

  • 应用链路太长
    • 从前端页面到后台网关,从Web应用服务器到后台数据库,任何一个环节出现故障都有可能导致整体卡顿。
    • 采用微服务架构的应用,链路更加复杂,而且不同组件可能由不同的团队和人员维护,加剧了问题排查的难度。
  • 日志不全或质量欠佳

    应用日志是排查线上问题的主要方法,但出现问题的位置往往无法预期,而且“慢”通常是偶发现象,要真正找到“慢”的原因,需要在每个可能出现问题的地方打印日志,记录每一次调用,但是成本太高。

  • 监控不足

    业务发展过快、应用快速迭代导致应用频繁修改接口、增加依赖等情况,进而导致代码质量恶化。应用需要一个完善的监控体系来自动监控应用的每一个接口,自动记录出现问题的调用。

解决方案

为应用安装ARMS探针后,即可在不改动应用代码的情况下,使用ARMS应用监控的线程剖析、调用链路诊断、接口监控等功能,全方位监控应用中所有慢调用。

步骤一:安装Java探针

为您的应用安装ARMS探针后才能使用ARMS应用监控对应用进行全方位监控。请根据实际需求选择一种方式来安装探针。

步骤二:查看慢SQL的统计信息

为应用安装ARMS探针后,ARMS会收集和展示选定时间内应用的总请求量、平均响应时间、错误数、实时实例数、Full GC次数、慢SQL次数、异常次数和慢调用次数,以及这些指标的周同比和日同比。请按以下步骤查看慢SQL的统计信息。

  1. 登录ARMS控制台
  2. 在左侧导航栏,选择应用监控 > 应用列表
  3. 在顶部菜单栏,选择地域。
  4. 应用列表页面上,单击您的应用名称。
  5. 应用总览页面的概览分析页签下,查看慢SQL的总数、周同比和日环比数据。

步骤三:发现并锁定慢接口

ARMS在接口调用页面展示了被监控的应用提供的所有接口以及这个接口的调用次数和耗时,慢接口会被标注出来,帮助您发现和锁定慢接口。

  1. 在左侧导航栏,单击接口调用
  2. 接口调用页面的左侧,单击调用次数最多的慢接口,在右侧查看慢接口的详细信息。接口调用

步骤四:查看并锁定问题代码

锁定慢接口后,需要找到问题代码来解决问题。快照是对一次调用的全链路调用的完整记录,包括每一次调用所经过的代码及耗时,可以精准定位问题代码。

  1. 接口调用页面右侧,单击接口快照页签。
    接口快照页签下显示该接口的所有快照。
  2. 接口快照页签下,单击某个调用链路的TraceId。
  3. 在弹出的页面,查看异常的调用链路信息,在方法栈列,单击放大镜图标,查看调用的方法栈,从而获得异常的上下文信息。
    说明 如何查找目标调用链路,请参见 调用链路查询

    操作至此,您已发现了系统中的某个慢调用的原因,这将有效地帮助您进行下一步的代码优化工作。您还可以返回接口调用页面,查看列表中其他慢调用,逐一解决。

后续操作

为避免在出现问题后被动诊断错误原因,您还可以使用ARMS的报警功能针对一个接口或全部接口创建报警,即可在出现问题的第一时间向运维团队发送通知。如何创建报警,请参见快速创建ARMS报警

更多信息