问题分析
网站卡顿、页面加载过慢是互联网应用最常见的问题之一。排查、解决网站卡顿、页面加载过慢等问题过程复杂,耗时较长,原因如下:
- 应用链路太长从前端页面到后台网关,从Web应用服务器到后台数据库,任何一个环节出现故障都有可能导致整体卡顿。
- 采用微服务架构的应用,链路更加复杂,而且不同组件可能由不同的团队和人员维护,加剧了问题排查的难度。
- 日志不全或质量欠佳应用日志是排查线上问题的主要方法,但出现问题的位置往往无法预期,而且“慢”通常是偶发现象,要真正找到“慢”的原因,需要在每个可能出现问题的地方打印日志,记录每一次调用,但是成 本太高。
- 监控不足业务发展过快、应用快速迭代导致应用频繁修改接口、增加依赖等情况,进而导致代码质量恶化。应用需要一个完善的监控体系来自动监控应用的每一个接口,自动记录出现问题的调用。
解决方案
为应用安装APM探针后,即可在不改动应用代码的情况下,使用应用性能监控的线程剖析、调用链路诊断、接口监控等功能,全方位监控应用中所有慢调用。
步骤一:安装APM探针
为应用安装APM探针后,才能对应用进行全方位监控。请根据实际需求选择一种方式来安装探针。
步骤二:查看慢SQL的统计信息
为应用安装APM探针后,APM会收集和展示选定时间内应用的总请求量、平均响应时间、错误数、实时实例数、Full GC次数、慢SQL次数、异常次数和慢调用次数,以及这些指标的周同比和日同比。请按以下步骤查看慢SQL的统计信息。
- 登录APM控制台,在左侧导航栏选择应用监控 > 应用列表。
- 在应用列表页面顶部单击目标应用名称。
- 在应用总览页面的概览页签下,查看慢SQL的总数、周同比和日环比数据。
步骤三:发现并锁定慢调用
APM在接口调用页面展示了被监控的应用提供的所有接口以及这个接口的调用次数和耗时,慢接口会被标注出来,帮助您发现和锁定慢接口。
- 在左侧导航栏,单击接口调用。
- 在接口调用页面的左侧,单击调用次数最多的慢接口,在右侧查看慢接口的详细信息。
步骤四:查看并锁定问题代码
锁定慢接口后,需要找到问题代码来解决问题。快照是对一次调用的全链路调用的完整记录,包括每一次调用所经过的代码及耗时,可以精准定位问题代码。
- 在接口调用页面右侧,单击调用链查询页签。调用链查询页签下显示该接口的所有调用链。
- 在调用链查询页签下,单击某个调用链路的TraceId。
- 在弹出的页面,查看异常的调用链路信息,将鼠标悬停在拓展信息部分,可以获得异常的具体信息。
操作至此,您已发现了系统中的某个慢调用的原因,这将有效地帮助您进行下一步的代码优化工作。您还可以返回接口调用页面,查看列表中其他慢调用,逐一解决。
后续操作
为避免在出现问题后被动诊断错误原因,您还可以使用ARMS的告警功能针对一个接口或全部接口创建告警,即可在出现问题的第一时间向运维团队发送通知。