网站常见问题1分钟定位 - 如何使用阿里云ARMS诊断Java应用卡顿问题

news/2024/5/10 13:40:26/文章来源:https://blog.csdn.net/weixin_34043301/article/details/89663992
1533204617148-159a4bff-c4fb-4533-9556-ba
不要慌,上面只是一张贴图。

为什么“慢”那么难查

网站卡顿、页面加载过慢是互联网应用最常见的问题之一。排查、解决这类问题通常会花费开发运维人员大量的时间,通常是因为以下三个原因:
  • 应用链路太长,无从下手。
    • 从前端页面到后台网关,从Web应用服务器到后台数据库,任何一个环节的问题都有可能导致请求整体卡顿,到底是前端资源加载过慢?还是数据库出了问题?还是新发布的服务端代码有性能问题?出现问题的原因五花八门。
    • 采用“微服务”架构的应用,链路更加复杂。不同组件可能由不同的团队、人员分别维护,加剧了问题排查的难度。
  • 日志不全或质量欠佳,现场缺失。
    • 应用日志无疑是排查线上问题的神器,但出现问题的位置往往无法预期,发生了问题通常会发现日志信息不全 -- 我们不可能在每一个有可能出现问题的地方打印日志。
    • “慢”的定义偏主观,“慢”有时候往往也是偶发现象。真正要捕捉到“慢”的那一行代码,我们往往需要记录每一次调用,不放过每一行代码,但这往往代价太大。
  • 监控不足,出现问题为时已晚。
    • 业务发展快、迭代速度更快,会导致业务系统频繁修改接口、增加依赖、代码质量恶化。如果没有一个完善的监控体系,能够对应用的每一个接口的性能进行全自动的监控,对出现问题的调用进行自动的记录,等用户反馈问题再来解决,本身就已经太迟了。

使用阿里云ARMS的0埋点技术,1分钟定位“慢”问题

利用阿里云ARMS(应用实时监控-链接)的线程剖析、调用链诊断、接口监控等一系列功能,您只需要在您的应用启动脚本中增加几行探针加载逻辑(链接),不需要对您的应用代码做任何改动,即可以让应用中所有“慢”调用无处可逃。

第一步:安装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探针安装成功。
    1533209461367-8f1194b0-58e2-4066-956b-8a

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

  • 进入ARMS应用拓扑图。在应用概览中我们能够明显地看到今天系统中有“慢SQL”5次。
    1533609326944-fa625255-575a-4352-9fdc-93

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

  • 点击接口列表,我们能够一眼看到这个应用提供的所有接口以及这个接口的调用次数和耗时,当然,这些接口都是ARMS的探针自动在程序中发现的,无需做任何配置。
  • 在这些接口中,“慢”接口会被明显标注出来。我们很明显地发现了可疑的慢接口。
  • 选中左侧的调用次数最多的”慢”接口,我们可以从右侧看到这次调用明显是“慢”在数据库的调用上。
1533612089492-97c9b6c0-183f-4acb-a8fa-72

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

  • 光看到接口的耗时还不够,我们需要精准定位“慢”到底出现在哪一行代码。
  • 点击“接口快照”,可以看到这个接口对应的所有接口的快照,快照是对一次调用的全链路调用的完整记录。ARMS探针将用非常小的性能损耗记录每一次调用所经过的代码及耗时,帮助您精准定位“慢”问题。
    1533612771329-2963ee1d-ae2f-4afc-b796-53
    1533612724128-2a07e7f7-a8a8-459e-918c-bc
  • 我们点击某一个调用快照的TraceId,展开即可查看到这次调用具体“慢”在哪一行。从上图中我们可以清晰地看到,在这次耗时705毫秒的调用中,大部分的时间都消耗在了"SELECT * FROM l_employee"这次SQL调用中,这明显是一次全表扫描的操作!
  • 到此为止,我们已经明确地发现了系统中的一个慢调用的错误根因。并且有充分的依据来指导我们下一步的代码优化工作。我们还可以回到调用接口列表,再逐一打开列表中其他“慢”的调用,逐一解决,相信在ARMS的帮助下,您的网站从此可以远离卡顿的困扰,给用户提供更加流畅的体验。

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

  • 当然,您可以在ARMS的告警设置中对某一个接口或全部接口设置告警,让页面接口出现卡顿时第一时刻通知到您的运维团队。
    1533613462904-8c8ba801-cdd9-4bbb-9ff6-76

快速诊断更多问题

  • 当然除了错误以外,网站还会出现后台抛错、页面加载失败、内存泄漏等一系列问题。利用ARMS快速解决更多网站疑难杂症,请继续关注“网站常见问题1分钟定位”系列其他文章。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_732508.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS网站图集相册特效

JS网站图集相册特效是一款可以直接使用鼠标进行前后导航,也可以通过缩略图来切换图片。在线演示本地下载转载于:https://www.cnblogs.com/wwhhq/p/8298797.html

手机移动端网站开发前要做的准备工作

为什么80%的码农都做不了架构师?>>> 现在的移动商城系统是商城网站必不可少的一部分,且占有相当比例的重要性,虽然手机商城网站开发很火,但是电商企业也不要盲目跟风,毕竟搭建一个商城系统网站也不是一下子…

利用angular4和nodejs-express构建一个简单的网站(三)—express访问mysql

在上一章中,我们为后端的express服务设置了跨域访问,并未前端的angular安装了bootstrap和ng-bootstrap依赖,并进行了配置,为后端的express安装了mysql和处理文件上传的multiparty依赖并创建了mysql数据库birthday在这一章中&#…

Python基础:有哪些网站可以做新手练习题?

答:有哪些网站可以做新手练习题? 练习 基础语法和实战项目 的 Python资源 有: Python经典练习题100道(附链接) http://www.pythonchallenge.com/ 这个网站的页面设计虽然不好看,但是里面的谜题设计得很出…

svn+nginx+mysql+php+nfs部署社交网站

操作环境:192.168.80.181 svn192.168.80.182 nginx192.168.80.183 mysql(MariaDB)192.168.80.185 php192.168.80.186 nfsSVN服务搭建 192.168.80.181:yum install -y subversionsvnserve --version //查看版本信息使用svnadmin建立版本库mkdir -p /opt/svn/rep…

3年开发了5个私人项目:自动化办公、网站、机器人、小程序...免费开源,拿走不谢~

大家好,这里是全网同名的程序员晚枫。 2019年从法学院毕业后就从事了程序员的工作,因为业务需要或者自己感兴趣,先后使用的开发语言有:Java、Python、JS。 今天整理一下这3年开发的私人项目,全部开源给大家&#xff…

django搭建一个小型的服务器运维网站-查看服务器中的日志与前端的datatable的利用...

目录 项目介绍和源码; 拿来即用的bootstrap模板; 服务器SSH服务配置与python中paramiko的使用; 用户登陆与session; 最简单的实践之修改服务器时间; 查看和修改服务器配置与数据库的路由; 基于websocket的实时日志实现…

Docker学习之路05:五分钟用docker compose搭建一个自己的个人博客网站!

五分钟用docker compose搭建一个自己的个人博客网站! Docker学习路线传送门: Docker学习之路01:Docker的安装 Docker学习之路02:阿里云镜像加速器 Docker学习之路03:Docker的常用命令 Docker学习之路04:创…

R语言与数据分析练习:使用ARIMA模型预测网站访问量

R语言与数据分析练习:使用ARIMA模型预测网站访问量 使用ARIMA模型预测网站访问量 一、实验背景: 随着流量的增大,某网站的数据信息量也在以一定的幅度增长 基于该网站2016年9月~2017年2月每天的访问量,使用ARIMA模型预测网站未来…

R语言与数据分析练习:使用协同过滤算法实现网站的智能推荐

R语言与数据分析练习:使用协同过滤算法实现网站的智能推荐 使用ARIMA模型预测网站访问量 一、实验背景: 基于实验1中某网站2016年9月每天的访问数据,使用基于内容的协同过滤算法实现网站的智能推荐,帮助客户发现他们感兴趣但很难发现的网页…

R语言与数据分析练习:使用Apriori算法实现网站的关联分析

R语言与数据分析练习:使用Apriori算法实现网站的关联分析 使用ARIMA模型预测网站访问量 一、实验背景: 基于某网站的访问数据,使用Apriori算法对网站进行关联分析 二、实验目的: 预测网站访问量 三、实验设计方案和流程图&am…

大型网站技术架构(四)网站的高性能架构

2019独角兽企业重金招聘Python工程师标准>>> 网站性能是客观的指标,可以具体体现到响应时间、吞吐量、并发数、性能计数器等技术指标。 1、性能测试指标 1.1 响应时间 指应用执行一个操作需要的时间,指从发出请求到最后收到响应数据所需要的时…

官网分析(英雄传奇)(如何设计网站前端)

官网分析(英雄传奇)(如何设计网站前端) 一、总结 一句话总结:最开始以仿为主,仿的多了,自己就会了。分块,留白,简洁,图片找好,字体找好&#xff0…

eyoucms 怎么使用网站地图?

网站无论大小,单独的网站地图页面都是必需的,通过网站地图,不仅用户可以对网站的所有内容一幕了然,搜索引擎也可以跟踪链接爬行到网站的主要部分。一般来说,网站地图有两种形式: 一种是HTML,称为…

大型网站背后的高性能系统架构设计

1. 性能测试1.1. 性能指标网站性能测试的主要指标有:响应时间 - 响应时间(RT)是指从客户端发一个请求开始计时,到客户端接收到从服务器端返回的响应结果结束所经历的时间,响应时间由请求发送时间、网络传输时间和服务器处理时间三部分组成。并…

细数国内几个比较牛的网站UED博客

发现国内一些有创新精神的网站的UED部门很活跃,也很有共享精神。他们有的在网站建立了自己的团队博客,在里面分享他们的设计经验,很值得一看。其实,团队开博客不仅仅有利于促进团队之间的良好氛围,更有利于宣传网站的文…

HTTPS通信中的身份认证机制_网站劫持检测

当你访问一个网站时,有没有想过这个问题:如何保证我的访问能直达目标网站,而没有被中间人攻击和劫持。想要解决这个问题,就得依靠HTTPS中的身份认证机制。 网站劫持检测 1、检测网站是否被劫持2、域名是否被墙3、DNS污染检测4、网…

5 个在线的网站测试和验证工具

网站上线前的测试和验证是非常重要的一个环节,验证的意思是检查网站的页面和其他数据是否符合标准规范,设计规范的网站在各种浏览器上表现会一致而且良好。 为了帮助你执行这些测试和验证,今天我们列表了 5 个在线的工具。 Pingdom Tools Pin…

mai模板html,纯PC网站模板改为自适应模板方法

随着互联网WEB前端技术的发展,各项技术诞生,BS架构、HTML5、CSS3、JQ各种新的技术出现在我们的面前,今天我们就分享下只有PC站情况下,如何快速做成自适应结构,满足移动端用户体验。网站自适应结构很多人认为很麻烦&…

svn同步到网站服务器,svn hook同步更新svn到web服务器

转到SVN项目的hooks目录下面新建post-commit文件.内容如下export LANGzh_CN.UTF-8WEB/www/vhostsvn update $WEB --username user --password passwd --no-auth-cache需要注意就是必须指定字符集还有运行 svn update 需要提供用户名密码且不要缓存用户认证令牌export LANGzh_CN…