美文网首页
Arthas使用命令总结

Arthas使用命令总结

作者: 三个程序员之一 | 来源:发表于2021-03-16 10:07 被阅读0次

    1.java -jar Arthas-boot.jar启动Arthas选中需要监控的java项目
    2.Arthas启动成功之后进入命令行模式
    3.下面是命令

    • help 帮助

    • dashboard jvm内存仪表盘

    • thread 1 | grep 'main(' 查询线程的栈信息 grep搜索方法名字

    • sc -d *类名 可以不加-d 是匹配符 可以写类全路径不需要 可以看到这个类的 加载信息,此方法非常重要可以看到jar冲突
      类加载器加载多少个相同类名的版本

    • sm -d *类名 主要是查看方法 和sc差不多

    • jad 全类 例如 jad com.demo.Main 可以反编译此类
      jad --source-only com.example.demo.arthas.user.UserController

    • watch 全类名 方法名 returnObj 例如 watch demo.MathGame primeFactors returnObj 可以一直监控指定方法调用信息通过
      watch命令可以查看函数的参数/返回值/异常信息。

    • sysprop 可以打印所有的System Properties信息。也可以指定单个key: sysprop java.version 也可以通过grep来过滤:
      sysprop | grep user 可以设置新的value: sysprop testKey testValue

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

    • jvm jvm 命令会打印出JVM的各种详细信息。

    • ognl '@java.lang.System@out.println("hello ognl")' 执行被监控项目的方法
      还可以通过-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}'
      其他更复杂的参考
      OGNL特殊用法请参考: (https://github.com/alibaba/arthas/issues/71)
      OGNL表达式官方指南: (https://commons.apache.org/proper/commons-ognl/language-guide.html)

    4.退出Arthas监控

    用 exit 或者 quit 命令可以退出Arthas。

    退出Arthas之后,还可以再次用 java -jar arthas-boot.jar 来连接。

    彻底退出Arthas
    exit/quit命令只是退出当前session,arthas server还在目标进程中运行。

    想完全退出Arthas,可以执行 stop 命令。

    更多使用方法请参考官网https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=arthas-advanced

    相关文章

      网友评论

          本文标题:Arthas使用命令总结

          本文链接:https://www.haomeiwen.com/subject/srvrcltx.html