当前位置: 首页 > news >正文

建网站 找个人最好的科技网站建设

建网站 找个人,最好的科技网站建设,智能建站网站,安卓android官网下载一、arthas简述Arthas 是阿里开源的Java诊断工具。安装在系统所在服务器,有着强大的能力,是一个开发运维神器。主要功能在线热替换代码/代码增强全局视角的性能分析查看方法执行情况,帮助跟踪偶现的bug支持JDK6二、官方资料官方文档的介绍非常…

一、arthas简述

Arthas 是阿里开源的Java诊断工具。安装在系统所在服务器,有着强大的能力,是一个开发运维神器。主要功能

  • 在线热替换代码/代码增强

  • 全局视角的性能分析

  • 查看方法执行情况,帮助跟踪偶现的bug

  • 支持JDK6

二、官方资料

官方文档的介绍非常详尽:https://arthas.aliyun.com/doc/

使用官方的在线交互式教程来熟悉操作:https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn

三、idea安装插件arthas idea

使用(选择方法或者静态变量,右键,在弹出框中选择arthas command,然后再选择对应的命令,就会copy生成好对应的命令)

四、命令使用

相关命令使用可以看官方文档,下面只是简单说明下常用命令

version:查看当前Arthas版本

help:arthas命令行帮助

dashboard:系统监控台信息

classloader:显示所有类加载信息

sysprop:打印所有的System Properties信息

指定单个key
sysprop user.dir通过grep过滤 
sysprop | grep user设置新的value
sysprop testKey testValue

sysenv: 命令可以获取到环境变量。和sysprop命令类似。

jvm :打印出JVM的各种详细信息

heapdump:似jmap命令的heapdump功能

 dump到临时文件
heapdumpdump到指定文件
heapdump ./dump.hprof只dump live对象
heapdump--live ./dump.hprof

thread: 查看线程相关信息

查看所有线程信息
thread查看线程ID 2的栈:
thread 2查看CPU使用率top n线程的栈
thread -n 3查看5秒内的CPU使用率top n线程栈
thread -n 3 -i 5000查找线程是否有阻塞
thread -b

jad: 反编译类

反编译想要的类,保存为文本文件
jad --source-only com.example.demo.arthas.user.UserController > /tmp/UserController.java

sm: 命令则是查找类的具体函数

sm -d java.math.RoundingMode

sc: 查找jvm加载的类

找到被修改类的classloader的哈希值
sc -d *UserController | grepclassLoaderHash

mc: 编译文件

通过mc(Memory Compiler)来编译修改好的.java文件,使用-c来指定classLoader,使用-d指定输出目录
mc -c1be6f5ff /tmp/UserController.java -d /tmp

redefine: 热加载编译好的文件

redefine/tmp/com/example/demo/arthas/user/UserController.class

monitor:方法执行监控

每5秒统计一次
monitor -c 5 class method

watch:方法执行数据观测

如果是列表,则会过滤列表中长度大于10的字符串
watch class method "{params,returnObj,throwExp}" "params[0].length() > 10" -x 1按条件过滤后展示指定属性
watch class method "{params[0].{? #this.name.length() > 5}.{age}}" -n 1 -x 1找到第一个符合条件的数据,用^
watch class method "{params[0].{^ #this.name.length() > 5}.{age}}" -n 1 -x 1找到最后一个符合条件的数据,用$
watch class method "{params[0].{$ #this.name.length() > 5}.{age}}" -n 1 -x 1

trace:方法内部调用路径,并输出方法路径上的每个节点上耗时

追踪方法的内部调用
trace class method  -n 5 --skipJDKMethod false 过滤大于200ms的调用链,只输出一次
trace class method '#cost>200' -n 1

stack:输出当前方法被调用的调用路径

tt:方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测

使用tt命令从调用记录里获取到spring context
tt -i 1000 -w 'target.getApplicationContext()'获取spring bean,并调用函数
tt -i 1000 -w ‘target.getApplicationContext().getBean(“helloWorldService”).getHelloMessage()’

ognl:动态执行代码

调用static函数
ognl '@java.lang.System@out.println("hello ognl")'获取静态类的静态字段(获取UserController类里的logger字段)
ognl --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader @com.example.demo.arthas.user.UserController@logger通过-x参数控制返回值的展开层数。比如:
ognl --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader -x 2 @com.example.demo.arthas.user.UserController@logger执行多行表达式,赋值给临时变量,返回一个List
ognl '#value1=@System@getProperty("java.home"), #value2=@System@getProperty("java.runtime.name"), {#value1, #value2}'单独设置UserController的logger level
ognl --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader '@com.example.demo.arthas.user.UserController@logger.setLevel(@ch.qos.logback.classic.Level@DEBUG)'修改logback的全局logger level
ognl --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader '@org.slf4j.LoggerFactory@getLogger("root").setLevel(@ch.qos.logback.classic.Level@DEBUG)'
  • OGNL特殊用法请参考:https://github.com/alibaba/arthas/issues/71

  • OGNL表达式官方指南:https://commons.apache.org/proper/commons-ognl/language-guide.html

五、例子

  • 排查HTTP请求返回401

401通常是被权限管理的Filter拦截了,那么到底是哪个Filter处理了这个请求,返回了401?

跟踪所有的Filter函数

trace javax.servlet.Filter *

可以在调用树的最深层,找到AdminFilterConfig$AdminFilter返回了401

通过stack获取调用栈

上面是通过trace命令来获取信息,从结果里,我们可以知道通过stack跟踪HttpServletResponse:sendError(),同样可以知道是哪个Filter返回了401

stack javax.servlet.http.HttpServletResponse sendError 'params[0]==401'
http://www.yayakq.cn/news/286488/

相关文章:

  • 制作外贸网站公司犀牛云建设网站
  • 如何选择镇江网站优化做视频网站软件
  • 网站 备案 查询惠州做棋牌网站建设有哪些公司
  • 建设网站科目北京网站建设 云智互联
  • qq空间网站是多少温州电商网站建设
  • 东莞网站建设优化免费编程软件下载
  • 无锡设计师网站wordpress评论后可见
  • 网站设计流程大致分为几个阶段淘宝代运营公司十大排名
  • 环保网站设计露兜博客 wordpress
  • 嘉兴型网站系统总部wordpress 匿名评论
  • 网文网站开发方案自建网站服务器备案
  • 查询备案网站四川建设厅个人证书查询
  • php技术应用于中小企业网站开发网站建设与维护就业怎么样
  • 北京 成品网站北京展板设计制作公司
  • 网站建设中界面模板下载江门整站优化
  • 网站虚拟服务器电商网站建设与维护意味着什么
  • 我想给图书网站做代理做网站后期怎么维护
  • 网站建设流网站优化待遇
  • 做网站设计的平台一般在百度做网站多少钱
  • 长沙专业做网站公司有哪些长春公司网站建设
  • 东莞网站快速排名提升中国站长网入口
  • 关于开展网站建设工作的通知百度商业平台官网
  • 现在什么语言做网站最好学校网站建设内容
  • 通付盾 建设网站推广方式是什么意思
  • 网站建设分金手指专业一网站开发文献资料
  • 做外贸网哪些网站免费系统开发和网站开发
  • 永久域名注册网站深圳网站设计 商城
  • 华东建设发展设计有限公司网站做微信问卷调查的网站
  • 永久免费的自建网站成品ppt网站
  • 个人网站建设可行性分析报告wordpress自动锚文本