您当前所在位置: > 爆料站 > 有深度

性能测试如何定位瓶颈?偶发超时?看高手如何快速排查问题

时间:2020-04-03 20:00:34  来源:  作者:网络

原标题:性能测试如何定位瓶颈?偶发超时?看高手如何快速排查问题

作者 | [张奇(司楚)]

当线上碰到头疼的问题时,还在对着代码一行行的看?真的不太时髦了啊喂~

俗话说的好 “问题排查不用愁,Arthas 来帮您忙。” 今天就来说说这个让妈妈再也不用担心我排查问题的 Java 诊断神器——Arthas!

什么是 Arthas?

Arthas 是一款开源在线诊断工具,采用命令行交互模式,支持 web 端在线诊断,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。这是一款开源一年多 GitHub star 2 万,99% 的阿里研发小哥都在用的 Java 终极诊断利器!相对比直接下载使用,我推荐开发者可以试一下通过 IDE插件 Cloud Toolkit 中使用Arthas 来实现一键远程诊断功能。

得益于 Arthas 强大且丰富的功能,让 Arthas 能做的事情超乎想象。下面仅仅列举几项常见的使用情况,更多的使用场景可以在熟悉了 Arthas 之后自行探索。

  • 是否有一个全局视角来查看系统的运行状况?
  • 为什么 CPU 又升高了,到底是哪里占用了 CPU ?
  • 运行的多线程有死锁吗?有阻塞吗?
  • 程序运行耗时很长,是哪里耗时比较长呢?如何监测呢?
  • 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
  • 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
  • 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
  • 有什么办法可以监控到 JVM 的实时运行状态?

Arthas 的命令、功能在其官方文档有详细介绍,下文将介绍一下近期几个使用场景。

场景 1:定位压测时的性能瓶颈

平时服务器请求都很正常。压测时,依赖的服务、数据库也都没有到达瓶颈,但是机器的 CPU 全部飘红,why?

通过 jstack 命令,只能看到某一时刻的堆栈,没有抓到真凶。

thread 查看当前线程信息,查看线程的堆栈。
thread -n 3 -i 10000 可以统计 10 秒内最忙的 3 个线程,并且打印它们的堆栈,很容易发现问题。最终发现的问题比较简单:日志中打印了 location 的信息,包括 类名、方法名和行号。
动态获取代码的方法名、行号等信息,通常是通过 new Throwable() -> 打印 Throwable 的堆栈 -> 截取堆栈中最顶层的业务代码 -> 拆分字符串获取类、方法、行号等信息, 打印堆栈对性能损耗是比较大的。

场景 2:检测偶发的超时

有段时间,总是碰到几次偶尔的超时,但是看日志都正常,鹰眼的调用链路都完全 ok,没有哪一步数据库操作或者 HSF 调用是特别慢的。

各种监控统计的时间维度的耗时,都十分正常,无法找到那个 rt 的尖刺。

想到了可能是日志的问题,但是没有证据支撑。

trace 命令能监控每一步的耗时,并且可以配合条件表达式,当耗时超过 xx ms 时打印详细日志。

找台机器,输入命令,后面的就是静等了。再次出现 rt 尖刺时,能够捕捉到耗时的分布情况。

通过 Arthas 拿到的结果,定位到是日志打印的问题。同步日志改为异步日志后,问题解决。

场景3 debug?那要是动态字节码生成咋办?

之前碰到过一个 json 序列化时输出的数字带不带引号的问题。当时各种 debug、看代码,发现是通过 ASM 动态字节码的方式生成的序列化类。到这完全放弃了,debug 已经无法定位问题了。当时通过另外一种方式避免了这种问题。

反过来看这个问题的时候,我们可以通过 Arthas 的 jad 命令,反编译动态字节码生成的类,结合 watch 等命令,定位排查问题。

jad——反编译指定已加载类的源码

还可以通过 mc(menory compiler), redefine 命令线上热更新代码,欢迎探索。

有了这些能力就算万能了?不不,接着往下看。

场景 4 做点坏事

在问题排查过程中,发现了日志输出到了控制台,这个对性能的损耗是比较大的。有什么办法,在不发布的情况下紧急解决它?

首先找到对应的 class

sc -d ch.qos.logback.core.ConsoleAppender

class-info ch.qos.logback.core.ConsoleAppender

code-source /home/admin/.../lib/logback-core-1.2.3.jar

name ch.qos.logback.core.ConsoleAppender

isInterface false

isAnnotation false

isEnum false

isAnonymousClass false

isArray false

isLocalClass false

isMemberClass false

isPrimitive false

isSynthetic false

simple-name ConsoleAppender

modifier public

annotation

interfaces

super-class +-ch.qos.logback.core.OutputStreamAppender

+-ch.qos.logback.core.UnsynchronizedAppenderBase

+-ch.qos.logback.core.spi.ContextAwareBase

+-java.lang.Object

class-loader +-com.taobao..LaunchedURLClassLoader@58dad04a

+-sun.misc.Launcher$AppClassLoader@18b4aac2

+-sun.misc.Launcher$ExtClassLoader@58ceff1

classLoaderHash 5f205aa

然后获取 class 的属性信息,找到 appender 列表

ognl -c 5f205aa '@org.slf4j.LoggerFactory@getLogger("root").aai.appenderList'

删除标准输出的 appender

1ognl -c 5f205aa '@org.slf4j.LoggerFactory@getLogger("root").aai.appenderList.remove(0)'

神器:火焰图

排查性能问题的时候,还有一个神器:火焰图通过火焰图,很清晰的看到一段时间内,对每个方法耗时的统计。

开始使用 Arthas

方式一:通过Cloud Toolkit 实现 Arthas 一键远程诊断

Cloud Toolkit 是阿里云发布的免费本地 IDE 插件,帮助开发者更高效地开发、测试、诊断并部署应用。通过插件,可以将本地应用一键部署到任意服务器,甚至云端(ECS、EDAS、ACK、ACR 和 小程序云等);并且还内置了 Arthas 诊断、Dubbo工具、Terminal 终端、文件上传、函数计算 和 MySQL 执行器等工具。不仅仅有 IntelliJ IDEA 主流版本,还有 Eclipse、Pycharm、Maven 等其他版本。

推荐使用 IDEA 插件下载 Cloud Toolkit 来使用 Arthas:http://t.tb.cn/2A5CbHWveOXzI7sFakaCw8

方式二:直接下载

地址:https://github.com/alibaba/arthas。

Arthas 有奖征文开始啦!

为了让更多开发者开始用上 Arthas 这个Java 诊断神器,这一次我们联合 JetBrains 推出这次有奖征文活动,聊聊这些年你和 Arthas 之间的那些事儿。第一期征文活动将与3月26日——4月26日举办,后续征文活动将持续至2020年12月。

内容方向建议:

  • 使用 Arthas 排查过的问题
  • 对 Arthas 进行源码解读
  • 对 Arthas 提出建议
  • 不限,其它与 Arthas 有关的内容

3 步提交征文

  1. 直接使用 Arthas 或通过 Cloud Tookit 使用 Arthas;
  2. 将你的体验整理成文章发布在掘金社区;
  3. 按要求填写以下表单:http://alibabadeveloper.mikecrm.com/9khcRrs

你将获得的礼物

  • 凡提交满足投稿要求文章的同学,将获得 Arthas Most Valuable User 福袋一份(礼品随机),包含淘公仔、Arthas 贴纸、阿里云 T 恤、JetBrains 周边礼包;
  • 第一期最受欢迎的 top3 的文章,获得天猫精灵一台;
  • 年度 top 20 文章,将有机会获得 cherry 键盘及 JetBrains 提供的包括 Coupon 等周边礼包 。

你将获得的荣誉

除了实物奖励之外,你还会获得

  • 在阿里巴巴云原生公众号和 Arthas 技术社区的首页,展示您的文章及作者介绍模块,让更多的开发者了解你;
  • 成为 Arthas 社区的贡献者,参与社区的日常运营,并作为社区讲师参与 Arthas 线上/线下活动分享。
“阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的技术圈。”

游戏网

相关下载

玩家评论

空运物流瓶颈危及抗疫,国际航协呼吁各国政府采取紧急措施

原标题:空运物流瓶颈危及抗疫,国际航协呼吁各国政府采取紧急措施 3月26日,国际航空运输协会(IATA,以下简称“国际航协”)及其成员航空公司再次呼吁各国详情>>

阅读: 1
日期: 2020-03-26
原州区破解产业“瓶颈”强化生态脱贫动力

原标题:原州区破解产业“瓶颈”强化生态脱贫动力 虽已立冬,但记者近日发现固原市原州区主干道两边的松树依然翠绿。今年,原州区紧紧围绕脱贫攻坚总目详情>>

阅读: 2
日期: 2020-03-20
移动游戏IP潜在价值报告:英雄联盟超500亿动漫改编陷入瓶颈_伽马

原标题:移动游戏IP潜在价值报告:英雄联盟超500亿动漫改编陷入瓶颈 近日,伽马数据(微信号:游戏产业报告)发布了《2020-2019年移动游戏IP潜在价值评估报告详情>>

阅读: 4
日期: 2020-03-03
安德罗妮致力于无情上分,却遇到瓶颈一路速8俯冲

炉石玩家应该对安德罗妮非常熟悉,是虎牙炉石版块知名的高手,而且经常会自我调侃。每一次都会给自己定下一个目标,吃鸡上分。房间标题一目了然,可惜这是详情>>

阅读: 16
日期: 2020-02-15
十四篇系列:游戏行业F2P模式下最典型的两个瓶颈问题分析_the

原标题:十四篇系列:游戏行业F2P模式下最典型的两个瓶颈问题分析 第一篇 这是内容行业,也包括游戏行业,必须要接受的基础认知 AAA quality is meaningl详情>>

阅读: 4
日期: 2020-01-21
深夜会异性不见男友,一年多没拍戏,46岁李冰冰事业爱情陷瓶颈?_外界

原标题:深夜会异性不见男友,一年多没拍戏,46岁李冰冰事业爱情陷瓶颈? 已经很少和男友更新动态的李冰冰,最近却被人拍到深夜和男性友人聚会了。 据媒体详情>>

阅读: 8
日期: 2019-11-11
聚焦5G商用:“云电脑”突破瓶颈迎来发展机遇

原标题:聚焦5G商用:“云电脑”突破瓶颈迎来发展机遇 在5G牌照发布仅半年后,中国5G在31日正式商用。在各方热议5G资费设计、试点城市的同时,5G会带来哪详情>>

阅读: 6
日期: 2019-11-01
AI商业化落地遇瓶颈?试试持续深挖客户需求

原标题:AI商业化落地遇瓶颈?试试持续深挖客户需求 在移动互联网红利渐失的行业大背景下,AI等前沿技术创业公司受到资本机构的追捧,但同时,与AI风口和泡详情>>

阅读: 6
日期: 2019-10-29
刘慈欣:希望《三体》电影能打破小说与影视间的瓶颈

今(26)日, 第十届全球华语科幻星云奖十年庆典在重庆启幕,刘慈欣、韩松、王晋康、何夕、陈楸帆等百名中国科幻文学与科幻影视的大咖们汇聚一堂,共话中国科幻详情>>

阅读: 3
日期: 2019-10-27
ToB产品经理,如何突破职业瓶颈?

原标题:To B产品经理,如何突破职业瓶颈? 作为成长期的产品经理,要怎样突破职业瓶颈?快速提升自己? 最近有人问我说:中哥,作为一个B端产品经理怎么能快详情>>

阅读: 6
日期: 2019-10-23
不同阶段产品经理,如何突破自身瓶颈(上)

原标题:不同阶段产品经理,如何突破自身瓶颈( 上 ) 产品经理在不同的阶段会扮演不同的角色:从一个项目的执行者到主动发掘用户需求,从负责产品业务线到详情>>

阅读: 5
日期: 2019-10-15
众盈时代:企业如何突破旧营销的推广瓶颈?

原标题:众盈时代:企业如何突破旧营销的推广瓶颈? 文/众盈时代 众筹可以说是企业市场营销模式的大创新,它在互联网营销新模式的基础上,继承了亲民参与详情>>

阅读: 9
日期: 2019-08-30
【小枫的沙盒生存】石炉.ep12 - 后期的发展瓶颈!

详情>>

阅读: 19
日期: 2019-08-18
野蛮生长过后,遇到小游戏发展瓶颈的不仅是我们

近些年,小游戏市场逐渐兴起,无论是玩家人数、开发者数量还是商业层面的关注均达到了前所未有的高度。出现此现象的原因,首先近年来玩家的 详情>>

阅读: 4
日期: 2019-05-08
野蛮生长过后,遇到小游戏发展瓶颈的不仅是我们

近些年,小游戏市场逐渐兴起,无论是玩家人数、开发者数量还是商业层面的关注均达到了前所未有的高度。出现此现象的原因,首先近年来玩家的 详情>>

阅读: 7
日期: 2019-05-08
野蛮生长过后,遇到小游戏发展瓶颈的不仅是我们

近些年,小游戏市场逐渐兴起,无论是玩家人数、开发者数量还是商业层面的关注均达到了前所未有的高度。出现此现象的原因,首先近年来玩家的 详情>>

阅读: 12
日期: 2019-05-08
《Apex英雄》遭遇瓶颈 第一人称视角+较高PC配置成短板

原标题:《Apex英雄》遭遇瓶颈 第一人称视角+较高PC配置成短板   《Apex英雄》这款游戏应该是继《绝地求生》之 详情>>

阅读: 9
日期: 2019-04-30
《Apex英雄》遭遇瓶颈 较高PC配置反而成短板

下载游戏近日游戏《Apex英雄》上线吸引了许多玩家的注意力,但是最新研究发详情>>

阅读: 7
日期: 2019-04-09
《Apex英雄》遭遇瓶颈 第一人称视角+较高PC配置成短板

  《Apex英雄》这款游戏应该是继《绝地求生》之后,最火、流行速度最快的大逃杀游戏。刚上线一个月,注册玩家就超过5000万人。但是根据最新研究发详情>>

阅读: 8
日期: 2019-04-09
用户增长陷入瓶颈,Snapchat推出AR平台增加广告收入

美国时间4月4日,Snap在洛杉矶举办了首届合作伙伴大会。会上,Snap宣布与Photomath合作,推出名为“Scan”的AR平台,从而解决一些现实世详情>>

阅读: 6
日期: 2019-04-06
了不起的修仙模拟器突破瓶颈方法攻略 这里必须要去

了不起的修仙模拟器瓶颈怎么突破,GSQGames这个游戏工作室来自重庆,只有美术、程序和策划三个人,然后就做出了一款叫《了不起的修仙模拟器》的RPG游戏。本文给大家带来了不起的修仙模详情>>

阅读: 4
日期: 2019-01-21
DIY新手说明书15:CPU不再是GTA5瓶颈?

提到GTA5的硬件配置需求,高达65GB的硬盘容量当属最...考虑到“全高画质、特效全开”的画面党玩家,在接下来... 详情>>

阅读: 4
日期: 2018-12-29
梦幻诛仙手游突破等级瓶颈 新手突破等级瓶颈方式

梦幻诛仙手游官网:梦幻诛仙手游新手一般都会在第一天等级达到45级左右,那么,如何在梦幻诛仙手游中突破等级瓶颈... 详情>>

阅读: 1
日期: 2018-12-17
光有性能就够吗?其实目前游戏手机还有四大瓶颈

欢迎阅读本期栏目,喜欢关注哦最近游戏手机概念似乎开始火热,主要还是大家的碎片化时间大多数都花在手游当中,端游因为操控场景固定而被逐渐冷落。就像选择游戏本产品一样,其实游详情>>

阅读: 1
日期: 2018-12-16
【古剑奇谭3】就算挣一个亿也困难,国单到瓶颈了?

详情>>

阅读: 3
日期: 2018-12-08
DOTA遇到瓶颈怎么办?

小编为您搜罗的答案如下:你可以去比你技术好点的房间打打,或者仔细研究一下一个比较好的视频replay仔细看里面的人的打法。和意识操作,然后试验,一定要仔细。我遇到瓶颈一般这样打过后,就可以提升了。提升详情>>

阅读: 5
日期: 2018-10-03
教你突破虞姬瓶颈

教你突破虞姬瓶颈详情>>

阅读: 2
日期: 2018-08-28
到了瓶颈期了,每把只能杀9个!

到了瓶颈期了,每把只能杀9个!详情>>

阅读: 3
日期: 2018-08-24
EMC易倍体育:艰难瓶颈?王哲林还有机会去NBA么?

在刚刚结束的一场亚运会小组赛中,中国队在下半场火力全开最终轻取哈萨克斯坦队,迎来两连胜。不过在这场比赛中王哲林的表现却比较一般,尤其是在不到三节时间里便5犯离场。其实在亚运会首战中,虽然王哲林得到详情>>

阅读: 2
日期: 2018-08-24
如何突破直销瓶颈呢?

小编为您搜罗的答案:一、突破直销瓶颈需要认真去分析不同人群所遇到的困惑。对于普通人,主要是人脉和资金的困惑;对于经济条件好,影响力大的领导人来说,团队复制和时间是他们的困惑。二、那我们怎么来解决不同人详情>>

阅读: 14
日期: 2018-08-22
突破最后的瓶颈,eSIM秋季有望迎来绽放时刻

飞象网讯(魏德龄/文)当SIM进化到eSIM、iSIM的时候,显然不再仅凭借“勤劳的双手”咔嚓一剪就能满足技术演进的需求,反观运营商缓慢的跟进步伐,已经开始拖了eSIM产品的后腿。然而,熬过这个酷夏详情>>

阅读: 5
日期: 2018-08-19
手游发展遭遇瓶颈,却给他们带来了机会!

文|游戏陀螺案山子日前,中国音数协游戏工委(GPC)、伽马数据(CNG)联合发布了《2018年1-6月中国游戏产业报告》,报告指出2018年上半年手游规模634.1亿元,同比增速出现了急剧下滑。而详情>>

阅读: 3
日期: 2018-08-14
不做硬件,百度VR浏览器如何突破瓶颈?

小编为您搜罗的答案:<p> 根据《互联网+影视产业研究专题报告》,从2015年初至今,VR产业的企业数量从200多家爆发到1600多家。2016年已进入最后一个月,VR行业也经过一年的发展详情>>

阅读: 3
日期: 2018-08-12
《刺激战场》吃鸡进入瓶颈期?以下原因是关键!

相信很多小伙伴在度过了一开始的不熟练之后,很快会进入一个水平暴涨期,仿佛哪里都刷机器人,谈笑间就进了决赛详情>>

阅读: 1
日期: 2018-08-05
神起网络推出新品突破公会行业瓶颈 创造新的发展机遇

  游戏公会自16年开始迅速壮大到今年的大爆发,几年下来,游戏公会这个行业已经聚集了数十万的从业者,公会团队更是数不胜数。随着公会行业的发展壮大,人多越来越多,竞争自然也就激烈起详情>>

阅读: 6
日期: 2018-07-28
《毁灭战士4》开发商称Switch性能没瓶颈还有潜力

如果要谈任天堂Switch主机最强画面,相信PanicButton比目前任何游戏开发商都有发言权,正是这家游戏开发商负责把原本PS4、XboxOne和PC平台才能运行的《毁灭战士4》、《德军总部:新详情>>

阅读: 4
日期: 2018-07-13
GRF二比零轻松取胜 AFS恐进入瓶颈期

">在洲际赛的8.13全新版本比赛中,各大赛区各显神通,拿出了完全不同的阵容搭配与战术思路,其中AFS在最终决胜局中展露出了队伍的短板,第一是太过于依赖上单Ki详情>>

阅读: 0
日期: 2018-07-12
去年收入破2000亿 但游戏行业瓶颈已现

“很久没有人跟我讲红利这个词了,现在更多的是红海。”在7月3日由CCGEXPO和数娱梦工厂主办的游戏高峰论坛上,游戏老兵、盛大游戏副总裁谭雁峰说出了游戏行业人士都为之困惑的问题:红海已经提烂了,游戏详情>>

阅读: 7
日期: 2018-07-09
《我是死神》遇到等级瓶颈怎么办 瓶颈打破办法

我是死神的玩家玩到一定的等级可能会遇到一些瓶颈,走了一些弯路导致没法突破。相信到了这个阶段玩家们已经摆脱了新手的困详情>>

阅读: 7
日期: 2018-06-25
《我是死神》遇到等级瓶颈怎么办 迅速突破瓶颈

我是死神的玩家玩到一定的等级可能会遇到一些瓶颈,走了一些弯路导致没法突破。相信到了这个阶段玩家们已经摆脱了新手的困详情>>

阅读: 6
日期: 2018-06-25
精彩推荐
相关专题