定位、排查 RT 类错误需要对多项指标逐一排查,过程漫长且复杂。针对此类问题,ARMS 应用监控提供主动诊断功能,帮助您快速准确地定位应用中 RT 类错误,进而解决应用响应时间过长问题。

背景信息

RT 类错误可能是由下游应用响应时间太长、流量不均匀、FullGC 过高、负载过高等原因导致。定位、排查 RT 类错误时,需要知道以下信息:

  • 导致本次 RT 突增的服务器。
  • 应用 SQL 耗时分析。
  • 检测应用的 FullGC 的次数、耗时是否有突增。
  • 是否存在内存泄漏。
  • 检测异常日志。
  • 检测下游应用的响应时间是否出现同样的趋势。

步骤一:安装探针

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

步骤二:查看异常信息

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

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

    应用列表页面,若应用存在异常,则状态栏显示为红色。

  2. 应用列表页面上,单击目标应用状态栏的红点。



  3. 关键事件页面查看异常详情信息。

    关键事件页面展示了该应用的响应时间、下游应用响应时间、平均响应时间的时序曲线、异常接口信息以及异常调用 Top 5 的 TraceID。

    图 1. 关键事件


步骤三:诊断异常出现的原因

掌握应用异常的统计信息还不足以诊断异常出现的原因。可以通过 SQL 分析、链路追踪、接口快照等功能快速定位导致异常出现的具体原因。

  1. 关键事件页面单击依赖服务的名称,例如单击调用 MYSQL。然后在概览页应用依赖服务区域查看下游应用详情。

    应用依赖服务区域展示了应用依赖服务的请求量、平均响应和应用实例数的时序曲线,以及 HTTP-状态码统计等信息。在本示例中,下游服务响应时间达到 1680 ms,可以判断应用 RT 突增是由下游应用 RT 突增导致的。

    图 2. 应用依赖服务详情


  2. 返回关键事件页面,并在该页面单击对突变影响最大的接口,例如单击/xxxdata/...page,然后在/xxxdata/...page的接口详情页面单击SQL 分析页签,查看接口信息。

    SQL 分析页签中展示了 SQL 调用统计、SQL 语句详情等信息,详情请参见 SQL 分析。在本示例中,可以判断下游服务的 SQL 调用太慢导致应用 RT 突增。

    图 3. SQL 分析


  3. 返回关键事件页面,并在该页面单击 Top5 耗时的一个 TraceID,然后再单击方法栈列的放大镜图标,查看问题代码。

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

    在本示例中,可以看到在耗时为 536 ms 的调用中,大部分的时间都消耗在了 SELECT t1.id As... 这次 SQL 调用中。

    图 4. 调用链路信息


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

后续操作

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

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

更多信息