性能优化与压测引擎三:性能优化利器arthas
- 性能优化利器arthas
- 简单使用
- 网页版
- Tunnel网页版
性能优化利器arthas
这个应该不陌生吧,阿里开源的,用于做性能优化和问题排查的,具体就不介绍了,可以看下这个学习文档很关键,基本所有问题都可用这个来解决,其实做性能检测的还有其他的一些工具,比如Jvisulvm,Jprofile,都是可视化的工具,可用看CPU,看GC,看堆内堆外等信息,特别是Jprofile的功能更强大,可用看mysql数据库没个链接的信息,以及每个sql的调用信息,有兴趣的可以学习下,Jprofile学习连接,这个挺好的,线程栈和耗时都有。当然这些工具很好,但是都有一定的局限性,如果你服务器不允许外部的软件连接进来的话,就没戏啦,但是你可以安装arthas,可以通过命令或者网页进行使用。
简单使用
首先先下载,我这里下载的是全量的:
然后解压开:
在当前目录打开cmd,然后用命令java -jar arthas-boot.jar:
选择你要监控的哪个进程,比如我自己的例子就是4:
最常用的就是dashboard,定时刷新的仪表盘信息,有线程状态和gc等信息:
另外就是看线程状态thread,可以帮助排查问题:
当然其他还有很多,比如你想看自己修改的代码是否真的打包进来了,可以用jad 后面跟类全限定名:
直接可以看到反编译的源码,可以看到类加载器,位置,源码:
当然还有好多强大的功能,比如监听某个方法,看输入输出异常,看耗时等等,具体的可以看文档,都有,有兴趣可以自己玩玩,百度相关的教程也很多,我就不啰嗦了。
网页版
其实默认还有个网页版的http://localhost:8563/,这个很方便,不需要登录后台服务器了:
Tunnel网页版
这个其实就是将多个arthas实例整合了,注册到一个地方,然后根据不同的id可以进行使用,这个是需要下载另外一个包:
也用相同方法起起来:
也是一个springboot应用,默认web是8080,还有个arthas实例通信的端口是7777:
然后看到这样的页面,有个AgentId是空的,简单可以理解为这个就是arthas实例id:
然后你可以开启一个arthas实例连接进去,但是要指定参数**–tunnel-server ws://127.0.0.1:7777/ws**:
没有看到一个id,这个说明没连接成功,为什么呢,因为前面已经用普通的启动过了,是有session存留的,应该用stop停止arthas,而不是q出来,我们可以看到session:
然后用stop:
再启动就有了:
连接上了:
复制X5JIV7MBC1E7IREKLRO6到web上,点连接即可:
主要是多个的时候可以方便切换,我再开个,其实这个id也可以指定,当然在运行的时候可能被提示端口占用,就按他的提示来换个即可:
这次我监听的是进程2,可以看到id就是我自己定义的:
然后去web上线断开连接,然后输入id后再连接:
是不是挺方便的,你搞个2个页签就可以了,然后可以同时监控2个进程:
不用去服务器上来回切了,很方便吧,其实我加工的压测系统就是把这个给嵌入了,所以就是压测性能优化一体,后面会放出来,我觉得用起来很方便,后面有机会会进行相关的源码分析,这个东西我是怎么加工的。
好了,今天就到这里了,希望对学习理解有帮助,大神看见勿喷,仅为自己的学习理解,能力有限,请多包涵。