博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java性能监控工具Arthas实践
阅读量:4112 次
发布时间:2019-05-25

本文共 854 字,大约阅读时间需要 2 分钟。

1. 启动Demo

在dos窗口输入:

curl -O https://alibaba.github.io/arthas/arthas-demo.jarjava -jar arthas-demo.jar

arthas-demo是一个简单的程序,每隔一秒生成一个随机数,再执行质因数分解,并打印出分解结果。

2. 启动arthas

在命令行下面执行(使用和目标进程一致的用户启动,否则可能attach失败):

蓝线以左是java开的demo(质数分解),蓝线以右是启动arthas的窗口
在这里插入图片描述

  • dashboard——当前系统的实时数据面板
    输入dashboard,按回车/enter,会展示当前进程的信息.由下图最后一行重复内容可知,它会循环更新信息。按ctrl+c可以中断执行。
    在这里插入图片描述
  • thread——查看当前 JVM 的线程堆栈信息
    通过thread命令来获取到arthas-demo进程的Main Class。输入“thread 1”会打印线程ID 1的栈,通常是main函数的线程。
    在这里插入图片描述
  • jvm——查看当前 JVM 的信息
    主要消息由以下几部分组成:
  1. CLASS-LOADING 2. GARBAGE-COLLECTORS 3. MEMORY 4. OPERATING-SYSTEM 5. THREAD
    局部图:
    在这里插入图片描述
  • watch——方法执行数据观测
    通过watch命令来查看demo.MathGame#primeFactors函数的返回值:
    在这里插入图片描述
    从上图可看出,watch命令是通过字节码增强技术来实现的,会在指定类的方法中插入一些切面来实现数据统计和观测,因此在线上、预发使用时,请尽量明确需要观测的类、方法以及条件。

注monitor/watch/trace相关的命令还有:

monitor——方法执行监控
trace——方法内部调用路径,并输出方法路径上的每个节点上耗时
stack——输出当前方法被调用的调用路径
tt——方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测

转载地址:http://cbrsi.baihongyu.com/

你可能感兴趣的文章
laravel 修改api返回默认的异常处理
查看>>
高德坐标转换百度坐标 javascript
查看>>
tp5封装通用的修改某列值
查看>>
laravel控制器与模型名称不统一
查看>>
vue登录拦截
查看>>
npm配置淘宝镜像仓库以及electron镜像
查看>>
linux设置开机自启动脚本的最佳方式
查看>>
VUE SPA 单页面应用 微信oauth网页授权
查看>>
phpstorm 集成 xdebug 进行调试
查看>>
npm和node升级的正确方式
查看>>
laravel事务
查看>>
springcloud 连续请求 500
查看>>
vue复用新增和编辑表单
查看>>
Ubuntu 16.04 apt-get更换为国内阿里云源
查看>>
laravel部署到宝塔步骤
查看>>
小程序获取access_token
查看>>
navicat远程连接mysql数据库
查看>>
tp5令牌数据无效 解决方法
查看>>
自己的网站与UCenter整合(大致流程)
查看>>
laravel 制作通用的curd 后台操作
查看>>