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

问题分析

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

  • 应用链路太长
    • 从前端页面到后台网关,从 Web 应用服务器到后台数据库,任何一个环节出现故障都有可能导致整体卡顿。
    • 采用微服务架构的应用,链路更加复杂,而且不同组件可能由不同的团队和人员维护,加剧了问题排查的难度。
  • 日志不全或质量欠佳
    • 应用日志是排查线上问题的主要方法,但出现问题的位置往往无法预期,而且“慢”通常是偶发现象,要真正找到“慢”的原因,需要在每个可能出现问题的地方打印日志,记录每一次调用,但是成本太高。
  • 监控不足
    • 业务发展过快、应用快速迭代导致应用频繁修改接口、增加依赖等情况,进而导致代码质量恶化。应用需要一个完善的监控体系来自动监控应用的每一个接口,自动记录出现问题的调用。

解决方案

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

步骤一:安装 Java 探针

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

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

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

  1. 在 ARMS 控制台左侧导航栏中,选择应用监控 > 应用列表

  2. 应用列表页面上,单击您的应用名称。

  3. 应用总览页面的概览分析页签顶部,查看慢 SQL 的总数、周同比和日环比数据。

    在本示例中,慢 SQL 次数为 42 次。



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

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

  1. 在 ARMS 控制台左侧导航栏中单击接口调用

  2. 接口调用接口选择区域选中左侧的调用次数最多的慢接口,在右侧查看慢接口的详细信息。

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

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

  1. 接口调用页面单击接口快照页签。

    接口快照页签内,您可以看到这个接口对应的所有接口的快照。

  2. 接口快照页签内单击某一个调用链路的 TraceId,再单击方法栈列的放大镜图标,查看问题代码。

    若您需要查找目标调用链路,请参见查询调用链

    在本示例中,可以看到在耗时为 705 毫秒的调用中,大部分的时间都消耗在了 SELECT * FROM l_employee 这次 SQL 调用中。

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

后续操作

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

创建报警操作步骤请参见快速创建 ARMS 报警

更多信息