做淘宝那样的网站麻烦吗,dw 怎么做钓鱼网站,今天足球赛事推荐,深圳做网站(信科网络)目录#xff1a;一、Arthas 介绍二、Arthas 使用场景三、Arthas怎么使用四、Arthas 定位性能问题定位Java代码导致占用CPU高的问题线程死锁前言#xff1a;在做性能测试的过程中#xff0c;当遇到Java性能问题#xff0c;比如CPU飙升#xff0c;负载突高#xff0c;内存溢…目录一、Arthas 介绍二、Arthas 使用场景三、Arthas怎么使用四、Arthas 定位性能问题定位Java代码导致占用CPU高的问题线程死锁前言在做性能测试的过程中当遇到Java性能问题比如CPU飙升负载突高内存溢出等问题需要一个个命令输入比如jstackjmaptop。最终才能一步步定位到问题有时还不能定位到问题而通过arthas可以很快的定位到问题一、Arthas 介绍Arthas 是 Alibaba 在 2018 年 9 月开源的 Java 诊断工具。支持 JDK6 采用命令行交互模式提供 Tab 自动不全可以方便的定位和诊断线上程序运行问题。Arthas 官方文档十分详细本文也参考了官方文档内容同时在开源在的 GitHub 的项目里的 Issues 里不仅有问题反馈更有大量的使用案例也可以进行学习参考。二、Arthas 使用场景主要的场景如下1、是否需要一个全局视角来查看系统的运行状况2、系统 CPU 升高了到底是哪里占用了 CPU3、运行的多线程有死锁吗有阻塞吗4、有什么方法可以监控到 JVM 的实时运行状态三、Arthas 怎么使用1、安装可以在官方 GitHub 上进行下载也可以在国内的码云 Gitee 下载。GitHub 下载或者 Gitee 下载打印帮助信息Java -jar arthas-boot.jar -h2、运行从上面下载的 jar 包来看可以直接用 Java -jar 命令运行运行方式有如下两种方式 1先运行再选择 Java 进程 pid[rootlocalhost data]# Java -jar arthas-boot.jar[INFO] arthas-boot version: 3.3.3[INFO] Found existing Java process, please choose one and input the serial number of the process, eg : 1. Then hit ENTER.[1]: 15585 arthas-boot.jar[2]: 18095 org.apache.catalina.startup.Bootstrap输入[]里面的数字回车另外一种方式运行时选择 Java 进程 pid备注查看运行的 Java 进程信息[rootlocalhost ~]# Java -jar arthas-boot.jar 18095看到如下信息就说明启动成功了3、常用命令4、退出[arthas18888]$ shutdown四、Arthas 定位性能问题1、全局监控使用 dashboard 可以实时显示线程内存GC运行环境信息2、定位 Java 代码导致占用 CPU 高的问题在 jmeter 里面跑性能测试场景在聚合报告里面可以看到响应时间越来越高查看系统资源使用情况输入top可以看到 cup 占用已经 99% 以上了在 arthas 里面输入如下命令查看 CPU 使用率 TOP N 的线程[arthas18888]$ thread -n 5备注这里有一个问题当用 jmeter 发起请求的时候线程会启动很多输入 dashboard 或 thread不会查看到单个 CPU 占用很高只能用这种 thread -n N 的方式显示线程栈的执行情况这些代码导致的性能问题3、线程死锁可以从 dashboard 的输出中看到有 BLOCKED 状态的线程再输入如下命令thread 线程 id或者直接输入[arthas20917]$ thread -b