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

临沂建站平台烟台巅峰网络科技有限公司

临沂建站平台,烟台巅峰网络科技有限公司,设计师网站赚钱,wordpress分析类主题简介 Arthas 是阿里开源的一款 Java 应用诊断工具#xff0c;可以在线排查问题#xff0c;动态跟踪 Java 代码#xff0c;以及实时监控 JVM 状态。 官方网站#xff1a;arthas 快速入门 1. 下载 wget https://arthas.aliyun.com/arthas-boot.jar 2. 运行 需要在运行…简介 Arthas 是阿里开源的一款 Java 应用诊断工具可以在线排查问题动态跟踪 Java 代码以及实时监控 JVM 状态。 官方网站arthas 快速入门 1. 下载 wget https://arthas.aliyun.com/arthas-boot.jar 2. 运行 需要在运行了java程序的环境运行 java -jar arthas-boot.jar 程序会显示出系统中所有正在运行的 Java 进程Arthas 为每个进程分配了一个序号 [INFO] JAVA_HOME: C:\Program Files\Java\jdk1.8.0_351\jre [INFO] arthas-boot version: 3.7.1 [INFO] Found existing java process, please choose one and input the serial number of the process, eg : 1. Then hit ENTER. * [1]: 9400 .\target\demo-0.0.1-SNAPSHOT.jar[2]: 13964 org.eclipse.equinox.launcher_1.6.500.v20230717-2134.jar[3]: 6796 org.springframework.ide.vscode.boot.app.BootLanguageServerBootApp 从这个列表中找到出问题的那个 Java 进程并输入相应的序号比如这里我输入 1然后按下回车Arthas 就会自动下载完整的包并 Attach 到目标进程输出如下 [INFO] Start download arthas from remote server: https://arthas.aliyun.com/download/3.7.1?mirroraliyun [INFO] Download arthas success. [INFO] arthas home: C:\Users\aneasystone\.arthas\lib\3.7.1\arthas [INFO] Try to attach process 9400 [INFO] Attach process 9400 success. [INFO] arthas-client connect 127.0.0.1 3658,---. ,------. ,--------.,--. ,--. ,---. ,---. / O \ | .--. --. .--| -- | / O \ .- | .-. || --. | | | .--. || .-. |. -. | | | || |\ \ | | | | | || | | |.- | -- ---- -- -- -- ---- ------- wiki https://arthas.aliyun.com/doc tutorials https://arthas.aliyun.com/doc/arthas-tutorials.html version 3.7.1 main_class pid 9400 time 2023-12-06 07:16:31[arthas9400]$ 3. 查看所有命令 [arthas9400]$ helpNAME DESCRIPTIONhelp Display Arthas Helpauth Authenticates the current sessionkeymap Display all the available keymap for the specified connection.sc Search all the classes loaded by JVMsm Search the method of classes loaded by JVMclassloader Show classloader infojad Decompile classgetstatic Show the static field of a classmonitor Monitor method execution statistics, e.g. total/success/failure count, average rt, fail rate, etc.stack Display the stack trace for the specified class and methodthread Display thread info, thread stacktrace Trace the execution time of specified method invocation.watch Display the input/output parameter, return object, and thrown exception of specified method invocationtt Time Tunneljvm Display the target JVM informationmemory Display jvm memory info.perfcounter Display the perf counter information.ognl Execute ognl expression.mc Memory compiler, compiles java files into bytecode and class files in memory.redefine Redefine classes. see Instrumentation#redefineClasses(ClassDefinition...)retransform Retransform classes. see Instrumentation#retransformClasses(Class...)dashboard Overview of target jvms thread, memory, gc, vm, tomcat info.dump Dump class byte array from JVMheapdump Heap dumpoptions View and change various Arthas optionscls Clear the screenreset Reset all the enhanced classesversion Display Arthas versionsession Display current session informationsysprop Display and change the system properties.sysenv Display the system env.vmoption Display, and update the vm diagnostic options.logger Print logger info, and update the logger levelhistory Display command historycat Concatenate and print filesbase64 Encode and decode using Base64 representationecho write arguments to the standard outputpwd Return working directory namembean Display the mbean informationgrep grep command for pipes.tee tee command for pipes.profiler Async Profiler. https://github.com/jvm-profiling-tools/async-profilervmtool jvm toolstop Stop/Shutdown Arthas server and exit the console. 与 JVM 相关的命令 与类加载、类、方法相关的命令 统计和观测命令 类 Linux 命令 其他命令  这是主要的几类命令 与 JVM 相关的命令 这些命令主要与 JVM 相关用于查看或修改 JVM 的相关属性查看 JVM 线程、内存、CPU、GC 等信息 jvm - 查看当前 JVM 的信息 sysenv - 查看 JVM 的环境变量 sysprop - 查看 JVM 的系统属性 vmoption - 查看或修改 JVM 诊断相关的参数 memory - 查看 JVM 的内存信息 heapdump - 将 Java 进程的堆快照导出到某个文件中方便我们对堆内存进行分析 thread - 查看所有线程的信息包括线程名称、线程组、优先级、线程状态、CPU 使用率、堆栈信息等 dashboard - 查看当前系统的实时数据面板包括了线程、内存、GC 和 Runtime 等信息可以把它看成是 thread、memory、jvm、sysenv、sysprop 几个命令的综合体 perfcounter - 查看当前 JVM 的 Perf Counter 信息 logger - 查看应用日志信息支持动态更新日志级别 mbean - 查看或实时监控 Mbean 的信息 vmtool - 利用 JVMTI 接口实现查询内存对象强制 GC 等功能 与类加载、类、方法相关的命令 这些命令主要与类加载、类或方法相关比如在 JVM 中搜索类或类的方法查看类的静态属性编译或反编译对类进行热更新等 classloader - 查看 JVM 中所有的 Classloader 信息 dump - 将指定类导出成 .class 字节码文件 jad - 将指定类反编译成 Java 源码 mc - 内存编译器将 Java 源码编译成 .class 字节码文件 redefine / retransform - 这两个命令都可以对已加载的类进行热更新但是 redefine 和 jad / watch / trace / monitor / tt 等命令会冲突而且 redefine 后的原来的类不能恢复所以推荐使用 retransform 命令关于 JDK 中 Redefine 和 Retransform 机制的区别可以参考 这里 sc - Search Class搜索 JVM 中的类 sm - Search Method搜索 JVM 中的类的方法 getstatic - 查看类的静态属性 ognl - 执行 ognl 表达式ognl 非常灵活可以实现很多功能比如上面的查看或修改系统属性查看类的静态属性都可以通过 ognl 实现 统计和观测 这些命令可以对类方法的执行情况进行统计和监控是排查线上问题的利器 monitor - 对给定的类方法进行监控统计其调用次数调用耗时以及成功率等 stack - 查看一个方法的执行调用堆栈 trace - 对给定的类方法进行监控输出该方法的调用耗时和 monitor 的区别在于它还能跟踪一级方法的调用链路和耗时帮助快速定位性能问题 watch - 观测指定方法的执行数据包括方法的入参、返回值、抛出的异常等 tt - 和 watch 命令一样tt 也可以观测指定方法的执行数据但 tt 是将每次的执行情况都记录下来然后再针对每次调用进行排查和分析所以叫做 Time Tunnel reset - 上面这些与统计观测相关的命令都是通过 字节码增强技术 来实现的会在指定类的方法中插入一些切面代码因此在生产环境诊断结束后记得执行 reset 命令重置增强过的类或执行 stop 命令 profiler - 使用 async-profiler 对应用采样并将采样结果生成火焰图 jfr - 动态开启关闭 JFR 记录生成的 jfr 文件可以通过 JDK Mission Control 进行分析 Arthas 命令与 JDK 工具的对比  Arthas 命令JDK 工具对比syspropjinfo -sysprops都可以查看 JVM 的系统属性但是 sysprop 比 jinfo 强的是它还能修改系统属性vmoptionjinfo -flag都可以查看 JVM 参数但是 vmoption 只显示诊断相关的参数比如 HeapDumpOnOutOfMemoryError、PrintGC 等memoryjmap -heap都可以查看 JVM 的内存信息但是 memory 以表格形式显示方便用户阅读heapdumpjmap -dump都可以导出进程的堆内存只是它在使用上更加简洁threadjstack都可以列出 JVM 的所有线程但是 thread 以表格形式显示方便用户阅读而且增加了 CPU 使用率的功能可以方便我们快速找出当前最忙的线程perfcounterjcmd PerfCounter.print都可以查看 JVM 进程的性能统计信息classloaderjmap -clstats都可以查看 JVM 的 Classloader 统计信息但是 classloader 命令还支持以树的形式查看另外它还支持查看每个 Classloader 实际的 URL通过 Classloader 查找资源等jfrjcmd JFR.start都可以开启或关闭 JFR 记录并生成的 jfr 文件 类 Linux 命令 除了上面那些用于问题诊断的命令Arthas 还提供了一些类 Linux 命令方便我们在 Arthas 终端中使用比如 base64 - 执行 base64 编码和解码 cat - 打印文件内容 cls - 清空当前屏幕区域 echo - 打印参数 grep - 使用字符串或正则表达式搜索文本并输出匹配的行 history - 输出历史命令 pwd - 输出当前的工作目录 tee - 从 stdin 读取数据并同时输出到 stdout 和文件 wc - 暂时只支持 wc -l统计输出的行数 此外Arthas 还支持在后台运行任务仿照 Linux 中的相关命令我们可以使用  在后台运行任务使用 jobs 列出所有后台任务使用 Ctrl Z 暂停任务使用 bg 和 fg 将暂停的任务转到后台或前台继续运行使用 kill 终止任务。具体内容可以参考 Arthas 后台异步任务。 其他命令 还有一些与 Arthas 本身相关的命令比如查看 Arthas 的版本号、配置、会话等信息 version - 查看 Arthas 版本号 options - 查看或修改 Arthas 全局配置 keymap - 查看当前所有绑定的快捷键可以通过 ~/.arthas/conf/inputrc 文件自定义快捷键 session - 查看当前会话信息 auth - 验证当前会话 quit - 退出当前 Arthas 客户端其他 Arthas 客户端不受影响 stop - 关闭 Arthas 服务端所有 Arthas 客户端全部退出这个命令会重置掉所有的增强类除了 redefine 的类 问题排查思路 使用 watch 监听方法出入参和异常 使用 logger 动态更新日志级别 使用 ognl 查看系统属性和应用配置 使用 jad/sc/retransform 热更新代码 其他使用场景 Arthas 的使用非常灵活有时候甚至还会有一些意想不到的功能除了上面这些使用场景Arthas 的 Issues 中还收集了一些 用户案例其中有几个案例对我印象很深非常有启发性可供参考。 使用 stack 命令定位 System.exit/System.gc 的调用来源https://github.com/alibaba/arthas/issues/20 使用 sc 和 jad 排查 NoSuchMethodError 问题https://github.com/alibaba/arthas/issues/160 使用 redefine 修改 StringBuilder.toString() 定位未知的日志来源https://github.com/alibaba/arthas/issues/263 使用 trace javax.servlet.Servlet/Filter 排查 Spring Boot 应用 404/401 问题https://github.com/alibaba/arthas/issues/429 使用 tt 定位 Java 应用 CPU 负载过高问题https://github.com/alibaba/arthas/issues/1202 使用 profiler 做复杂链路分析排查性能问题https://github.com/alibaba/arthas/issues/1416 使用 trace 命令将接口性能优化十倍https://github.com/alibaba/arthas/issues/1892 参考资料 Arthas 文档https://arthas.aliyun.com/doc/ OGNL 参考文档https://commons.apache.org/proper/commons-ognl/language-guide.html Arthas 在线教程 - Killercodahttps://killercoda.com/arthas/course/arthas-tutorials-cn redefine VS. retransformhttps://lsieun.github.io/java-agent/s01ch03/redefine-vs-retransform.html Alibaba Arthas实践--获取到Spring Context然后为所欲为https://github.com/alibaba/arthas/issues/482 Arthas 用户案例https://github.com/alibaba/arthas/issues?qlabel%3Auser-case 使用 SkyWalking Arthas 优化微服务性能https://github.com/alibaba/arthas/issues/1653 使用 Arthas 排查线上问题
http://www.zqtcl.cn/news/78290/

相关文章:

  • 泰安网站制作哪里有手机网站打不开被拦截怎么办
  • 网络推广网站推广方法wordpress4 中文
  • 服装网站建设规划书怎么写wordpress模板带后台
  • 企业网站优化培训WordPress mvc插件
  • 山东平台网站建设方案前端小说
  • 自己建网站收费吗网页设计培训班学费多少钱
  • 怎么自己做网站推广wordpress管理密码修改
  • 郑州做营销型网站建设合肥网络推广服务
  • 网站开发规格地方做什么网站
  • 竹木工艺品网站建设公司注册步骤流程
  • html5的网站花生壳怎么发布自己做的网站
  • 浙江建设厅 继续教育 网站wordpress屏蔽右键菜单并提示
  • 湖北响应式网站设计制作实名网站空间
  • 浙江省建设教育考试中心网站网站怎样注册
  • 租房网站开发视频教程随便建设网站犯法吗
  • mip手机网站模板怎么样做游戏网站
  • 南宁cms建站系统自己做的网站视频播放不了
  • 网站开发及代运营合理使用说明
  • 模版型网站天津广告公司排行榜
  • 长春代做网站衡水网站建设联系电话
  • 网站开发发和后台开发有什么区别克拉玛依市住房和建设局网站
  • 永川网站设计360免费建站模板
  • 佛山做网站费用wordpress feed页面在哪儿
  • 上海专业高端网站建设服北京做微信网站
  • 网站搭建项目描述怎么建立网站数据库
  • 网站服务器放置地常用的网站流量统计软件有哪些
  • 怎样做网站怎要加服务器笑话网站模版
  • 百度免费优化宁波市网站排名优化
  • 做网站最常用的软件是什么建设网站注册功能
  • 焦作网站建设设计公司淘宝客网站需要多大主机