1. 聚能聊>
  2. 话题详情

如何看待阿里巴巴最新开源项目阿尔萨斯?

image

Arthas 是一个由阿里巴巴开源的Java诊断工具。

Arthas帮助开发人员解决Java应用程序的生产问题,而无需修改代码或重新启动服务器。

背景

通常,生产系统网络无法从本地开发环境中访问。如果在生产系统中遇到问题,则无法使用IDE远程调试应用程序。更重要的是,在生产环境中进行调试是不可接受的,因为它会挂起所有线程,从而导致业务服务被阻塞。

开发人员总是可以尝试在测试/暂存环境中重现相同的问题。但是,这很棘手,因为有些问题不能在不同的环境中轻松复制,甚至在重新启动后就会消失。

如果您正在考虑在代码中添加一些日志以帮助解决问题,那么您将不得不经历以下生命周期; 测试,分期,然后到生产。时间就是金钱!这种方法效率低下!此外,如上所述,一旦JVM重新启动,该问题可能无法再现。

阿尔萨斯的建立是为了解决这些问题。开发人员可以即时解决您的生产问题。没有JVM重启,没有其他代码更改。阿尔萨斯作为观察者工作,永远不会暂停你现有的线程。

主要特征

检查是否已加载类?或者从哪里加载类?(用于解决jar文件冲突的问题)
反编译一个类以确保代码按预期运行。
查看类加载器统计信息,例如类加载器的数量,每个类加载器加载的类数,类加载器层次结构,可能的类加载器泄漏等。
查看方法调用详细信息,例如方法参数,返回对象,抛出异常等。
检查指定方法调用的堆栈跟踪。当开发人员想要知道所述方法的调用者时,这是有用的。
跟踪方法调用以查找慢速子调用。
监控方法调用统计信息,例如qps,rt,成功率等。
监控系统指标,线程状态和CPU使用情况,gc统计信息等。
支持命令行交互模式,启用自动完成功能。
支持telnet和websocket,支持命令行和浏览器进行本地和远程诊断。

说完了背景与功能,来问几个小问题.
1.你觉得这个项目怎么样,对你的工作能有促进作用吗?

2.如果使用上有瑕疵,有那些?

3.如何看待阿里巴巴越来越快的发布开源项目?

ps.冬天到了,给大家申请了保温杯和帽衫礼品,大家积极参与话题互动就有机会哦

参与话题

奖品区域 活动规则 已 结束

  • 奖品一

    阿里云代金券 x 5

  • 奖品二

    云栖帽衫 x 1

  • 奖品三

    定制保温杯 x 1

11个回答

4

黄二刀 复制链接去分享

1.你觉得这个项目怎么样,对你的工作能有促进作用吗?
很不错的一个项目,对于从生产环境中诊断出问题所在非常有价值,解决了一些目前比较棘手的线上诊断问题。
2.如果使用上有瑕疵,有那些?
个人感觉,这个东西可能会比较消耗服务器资源,如果服务器资源紧张,可能会出现资源争夺的现象。
3.如何看待阿里巴巴越来越快的发布开源项目?
一方面证明了阿里目前的技术水平,另一方面也奠定了阿里在全球技术界的地位,还会也兑现了老马普惠的承诺。

1

饭娱咖啡 复制链接去分享

1.你觉得这个项目怎么样,对你的工作能有促进作用吗?
从这个话题才听说的这个项目,目前正在尝试着使用,具体效果还有待考察。
看项目的提交情况来看,项目一直进行中,相信会越来越强大,我也会持续关注。

2.如果使用上有瑕疵,有那些?
目前来说,用的还比较少,没发现什么问题。要说有问题的话,可能就是推广少吧。就是在这个话题之前,我都不知道有这样一个项目。最近参与的项目中,各种文档都不曾提及有 Arthas。

3.如何看待阿里巴巴越来越快的发布开源项目?
阿里巴巴越来越快的发布开源项目想必是知道开源带来的各种好处了。

  • 节约成本:一个项目的开发必定存在各种Bug,而开源的好处就是很多人在帮你测试bug。这不仅可以帮开源项目节约人力成本,也可以帮使用开源项目的企业节约人力成本。
  • 影响力:好的开源项目必定会聚集很多开发者,而开发者之间的口口相传会给项目乃至企业带来好的名声和影响。
饭娱咖啡 回复

缺个杯子!(^▽^)

评论
1

卓上 复制链接去分享

1.你觉得这个项目怎么样,对你的工作能有促进作用吗?
很好的项目,背景里描述的问题都是需要解决的问题,能很好的帮助开发人员发现问题,解决问题。

2.如果使用上有瑕疵,有那些?
暂时没有建议。

3.如何看待阿里巴巴越来越快的发布开源项目?
说明这种需求是很迫切的,是很好的现象,让阿里的服务更完善强大。

0

天字号猪 复制链接去分享

Arthas 是阿里巴巴最近才开源出来的一款 Java 诊断利器。主要是针对线上环境,也就是生产环境。用起来非常的方便,本文介绍 Arthas 的相关简单用法。

Arthas 是 Alibaba 开源的 Java 诊断工具,深受开发者喜爱。开源两天以来,star 超过 500。

arthas

当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:

这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
是否有一个全局视角来查看系统的运行状况?
有什么办法可以监控到JVM的实时运行状态?
Arthas采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。

安装 Arthas
Arthas 的安装非常的简单,主要分为 Linux/Unix/Mac 和 Windows 两种情况。

Arthas 支持在 Linux/Unix/Mac 等平台上一键安装,直接执行一下命令即可完成安装:

1
curl -L https://alibaba.github.io/arthas/install.sh | sh
上述命令将会下载启动脚本文件 as.sh 到当前目录,你可以将它放在任何地方或将其加入到 $PATH 中。

Arthas 也支持 Windows 系统。安装也很简单,下载最新的 zip 包,解压后运行 bin 目录下的 as.bat。

下载地址:arthas-packaging-3.0.0-RC-bin.zip

Windows 用户如果在cmd里不能正常显示颜色,可以使用 conemu。

手动安装 Arthas
除了上面的自动安装方法,我们还可以选择手动安装。

从这里下载最新版本, 以3.0.0-RC这个版本为例。可以使用 wget 命令进行下载:

1
wget https://search.maven.org/remotecontent?filepath=com/taobao/arthas/arthas-packaging/3.0.0-RC/arthas-packaging-3.0.0-RC-bin.zip -o arthas-packaging-bin.zip
然后解压缩 arthas 的压缩包,命令如下:

1
unzip arthas-packaging-bin.zip
如果你已经安装过其他老旧的版本,在安装之前最好把所有老版本的 Arthas 全都删掉,具体删除命令如下:

1
2
3
4
sudo su admin
rm -rf /home/admin/.arthas/lib/*
cd arthas
./install-local.sh
这里根据你需要诊断的 Java 进程的所属用户进行切换。

启动之前,请确保老版本的 Arthas 已经 shutdown。

0

西狂sanji 复制链接去分享

1.你觉得这个项目怎么样,对你的工作能有促进作用吗?
项目很好,对很多人的工作都会有直接或者间接的帮助;
2.如果使用上有瑕疵,有那些?
有瑕疵是必然的,只要是系统就会有漏洞,更何况是逻辑语言了!
3.如何看待阿里巴巴越来越快的发布开源项目?
一个体系的完善,作为中国IT的领军者,开源不仅仅是提供了项目,更多地是带动起大家动手的积极性,这算是我国目前所欠缺的,太多的拿来主义也不好。自己动手,丰衣足食,相互借鉴,取长补短。

0

浮生递归 复制链接去分享

洛阳亲友如相问,就说正在调bug。

1.你觉得这个项目怎么样,对你的工作能有促进作用吗?
解决生产环境中的故障,确实是个头疼的问题,特别是不好复现的。而涉及到数据量的问题,就更频繁了。比如某些问题,在数据小的时候,根本不会发生,但是数据量一上来,就开始爆发了。

2.如果使用上有瑕疵,有那些?
阿里巴巴出品,必属精品,应该不会有什么大的瑕疵吧。不过部分细节是难免的,就像java规范手册,总会有很多改进的余地,但核心部分肯定都已经很完备了。

3.如何看待阿里巴巴越来越快的发布开源项目?
技术反哺。阿里巴巴发展的太快,全社会的技术储备已经无法满足阿里巴巴的需求,阿里巴巴只能通过各种方式来推送社会发展,才能反过来满足自己的技术人才需求。

0

淡而无味 复制链接去分享

目前来说,用的还比较少,没发现什么问题。要说有问题的话,可能就是推广少吧。就是在这个话题之前,我都不知道有这样一个项目。最近参与的项目中,各种文档都不曾提及有 Arthas。

0

aoteman675 复制链接去分享

1.你觉得这个项目怎么样,对你的工作能有促进作用吗?
生产诊断,主要还是更好的观察线程运行状态和线程抢占CPU情况。对我的Linux服务器还是有用的,但是在windows服务器使用效果不好。

2.如果使用上有瑕疵,有那些?
windows服务器只能诊断本机上的 Java 进程,而且只能是一个pid。

3.如何看待阿里巴巴越来越快的发布开源项目?
开源项目,是为了更好的促进这项工具的完善,同时也在提升公司在开源社区的影响力,谷歌也经常发布开源项目,技术的实力在于不怕开源致公司技术落后,而是因开源更强大,在国际互联网技术公司上技术实力占有一席之地。

0

微wx笑 复制链接去分享

1.你觉得这个项目怎么样,对你的工作能有促进作用吗?
这应该属于高大上的工具吧,一般情况下用不到。

2.如果使用上有瑕疵,有那些?
还没用过。

3.如何看待阿里巴巴越来越快的发布开源项目?
源于开源,回报开源。

0

wangccsy 复制链接去分享

1.你觉得这个项目怎么样,对你的工作能有促进作用吗?
这个项目真的不错,应用程序不用重新启动就可以检查和重新加载新的类,相当于热部署。在要求不间断运行的环境中,这个开源项目是特别有用的。不过,对于现在的我来说,基本上用不上这个项目,因为我现在是使用微软的开发环境。C#语言开发的应用程序。不过如果能将这个项目移植到微软平台也不错。希望有这方面的实现。
2.如果使用上有瑕疵,有那些?
没有使用过这个项目,所以不清楚它有哪些不足呢。
3.如何看待阿里巴巴越来越快的发布开源项目?
阿里在贡献自己的技术力量,为全人类贡献着自己的技术积累。同时提升着自己的社会知名度。开源,不仅仅是外国人的事,不难是外国公司的事,我们中国的企业,我们中国人也在为开源贡献自己的力量,为全社会技术的进度贡献自己的积累。