使用Arthas工具分析CPU使用率高的问题

当遇到 Java 性能问题时,如 Java CPU 飙升(使用率100%到200%)、负载突升等问题,大多数常见问题你都可以使用 Arthas 轻松定位。
使用方法:
将arthas附件包解压后放到容器/mservice/logs目录下
步骤1. 执行 /jdk/bin/java -jar arthas-boot.jar 1 (容器里的java进程号PID默认为1)
步骤2. 执行thread命令查看CPU排序,定位哪个线程耗CPU
步骤3. 执行thread <线程号> ,下图中执行thread 12,从12号线程堆栈里面获取是什么堆栈导致的CPU高。还可以根据堆栈里的traceid在苍穹monitor里查找具体是什么功能消耗的CPU资源,然后进一步分析问题原因。


(目前最新mservice苍穹镜像已附带了arthas工具,在/opt目录下,执行as.sh脚本即可运行)如下

=====================================================================
注:有时应用服务会卡死,重启后会重现问题,完全卡死时无法收集。
如果苍穹进程不能挂载Arthas,或者处于CPU严重超载时,我们建议通过如下shell命令在容器里获取最耗时的线程:
# top -b -d2 -n3 -H -p 1 | grep 'top -' -A 17 > slow.log && /jdk/bin/jstack -l 1 >> slow.log
间隔2秒,获取3次进程1的前10个最耗费CPU的线程信息,并与线程堆栈一起输出到文件slow.log中,然后通过线程号找到最耗费CPU的线程。
-----------------------------------------------------------------
使用Arthas工具分析CPU使用率高的问题
当遇到 Java 性能问题时,如 Java CPU 飙升(使用率100%到200%)、负载突升等问题,大多数常见问题你都可以使用 Arthas 轻松定位。...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



