阿里云ARMS诊断Java应用卡顿问题实战

别慌,这只是一张贴图前端

除了404,最让网友们心塞的可能就是这张图了。java

据相关研究代表:当页面加载时间从 1 秒到 3 秒,跳出的机会增长了30%左右。1s到5s的机会增长到90%,若是你的网站须要10s的加载,跳出的机会将会超过120%。(这里的120%不是指来10我的,走12我的,是用户流失增加率的意思)因此,在这个“用户体验为王”的时代,应用性能监控已经成为运维管理的重中之重。数据库

1、查找致使 “慢” 的缘由。

网站卡顿、页面加载慢是互联网应用常见的问题之一,这类问题的排查和解决并不容易,会花费运维人员大量的时间和精力。一般缘由有如下三个:bootstrap

» 应用链路太长,无从下手。服务器

从前端页面到后台网关,从Web应用服务器到后台数据库,任何一个环节的问题都有可能致使请求总体卡顿,究竟是前端资源加载过慢?仍是数据库出了问题?仍是新发布的服务端代码有性能问题?出现问题的缘由五花八门。架构

采用“微服务”架构的应用,链路更加复杂。不一样组件可能由不一样的团队、人员分别维护,加重了问题排查的难度。并发

» 日志不全或质量欠佳,现场缺失。app

应用日志无疑是排查线上问题的神器,但出现问题的位置每每没法预期,发生了问题一般会发现日志信息不全,由于咱们不可能在每个有可能出现问题的地方打印日志。运维

“慢”的定义偏主观,“慢”有时候每每也是偶发现象。真正要捕捉到“慢”的那一行代码,咱们每每须要记录每一次调用,不放过每一行代码,但这样的作法代价太大。微服务

» 监控不足,出现问题为时已晚。

业务发展快、迭代速度更快,会致使业务系统频繁修改接口、增长依赖、代码质量恶化。若是没有一个完善的监控体系,可以对应用的每个接口的性能进行全自动的监控,对出现问题的调用进行自动的记录,等用户反馈问题再来解决,自己就已经太迟了。

2、如何 1 分钟定位 “慢” 问题

业务实时监控服务 ARMS(Application Real-Time MonitoringService)是一款阿里云应用性能管理(APM)类的全链路监控产品。ARMS提供了针对Java 应用监控和诊断、车联网实时监控、零售行业实时监控、用户体验监控等场景下全方位的监控功能,包括前端监控、应用监控和自定义监控等功能,快速构建实时的业务监控能力。

第一步:安装Java探针(若是您的应用托管于EDAS,甚至能够跳过这一步 )

  • 开通ARMS,并建立应用。
  • 下载Java探针包并解压。
  • 在Java应用启动脚本中增长-javaagent:/{user.workspace}/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar-Darms.licenseKey=xxx -Darms.appId=xxx (appId和licenseKey根据页面分配的信息填写)
  • 打开ARMS页面,数据开始上报,验证Java探针安装成功。

第二步:在应用概览中发现“慢”可疑线索

进入ARMS应用拓扑图。在应用概览中咱们可以明显地看到今天系统中有“慢SQL”5次。

第三步:浏览并发现“慢接口”

点击接口列表,咱们可以一眼看到这个应用提供的全部接口以及这个接口的调用次数和耗时,固然,这些接口都是ARMS的探针自动在程序中发现的,无需作任何配置。

在这些接口中,“慢”接口会被明显标注出来。咱们很明显地发现了可疑的慢接口。

选中左侧的调用次数最多的”慢”接口,咱们能够从右侧看到此次调用明显是“慢”在数据库的调用上。

第四步:到底“慢在哪一行代码”? 一键定位缘由!

  • 光看到接口的耗时还不够,咱们须要精准定位“慢”到底出如今哪一行代码。
  • 点击“接口快照”,能够看到这个接口对应的全部接口的快照,快照是对一次调用的全链路调用的完整记录。ARMS探针将用很是小的性能损耗记录每一次调用所通过的代码及耗时,帮助您精准定位“慢”问题。

  • 咱们点击某一个调用快照的TraceId,展开便可查看到此次调用具体“慢”在哪一行。从上图中咱们能够清晰地看到,在此次耗时705毫秒的调用中,大部分的时间都消耗在了"SELECT * FROMl_employee"此次SQL调用中,这明显是一次全表扫描的操做!
  • 至止,咱们已经明确地发现了系统中的一个慢调用的错误根因。而且有充分的依据来指导咱们下一步的代码优化工做。咱们还能够回到调用接口列表,再逐一打开列表中其余“慢”的调用,逐一解决,相信在ARMS的帮助下,您的网站今后能够远离卡顿的困扰,给用户提供更加流畅的体验。

第五步:防患于未然-- 设置告警

固然,您能够在ARMS的告警设置中对某一个接口或所有接口设置告警,让页面接口出现卡顿时第一时刻通知到您的运维团队。

3、还有哪些网站体验问题?

固然除了网站卡顿、页面加载慢之外,网站还会出现后台报错、页面加载失败、内存泄漏等一系列问题。如何利用ARMS快速解决更多网站疑难杂症,请关注咱们的 ARMS 系列文章 - “网站常见问题1分钟定位”。

 

文章连接:http://click.aliyun.com/m/1000012106/

相关文章
相关标签/搜索