苍穹性能、宕机问题分析思路原创
金蝶云社区-张悦_4969
张悦_4969
4人赞赏了该文章 919次浏览 未经作者许可,禁止转载编辑于2022年02月16日 19:06:15

介绍目前用于苍穹性能问题的分析思路,包括monitor工具、MAT宕机日志收集分析、Arthas工具分析CPU消耗高问题、JDK线程堆栈收集分析。(不包含操作系统、数据库与中间件等部分)


  1. Monitor工具

    Monitor是苍穹的微服务集群监控管理平台,是苍穹分析和排查线上问题必不可少工具。

    如需了解具体使用方法可参考 #PaaS平台那些事# 公众号文章,这里不做详细介绍。

    https://mp.weixin.qq.com/s?__biz=Mzg5NDU2MTIxMQ==&mid=2247485283&idx=1&sn=ab5edfce3f16c97764544365eb161abe&chksm=c01cf9b7f76b70a19c40f750a551498063d6d62a40ba53f0666a7d84ba0c1ec4bafa6c659811&scene=21#wechat_redirect


    image.png


2. 整体性能问题、宕机问题分析(dump日志收集分析)

当发生整体缓慢甚至系统不可用时,强烈建议在重启服务前手动生成dump日志到NFS挂载目录或其他服务器本地目录,以便事后使用MAT工具分析。


(1) 容器环境收集方法(存放路径要放到服务器上,1为容器内固定Java PID进程):

     /jdk/bin/jmap -dump:format=b,file=/mservice/logs/dump.bin 1


(2) 非容器环境收集方法(存放路径可自定义):

     /kingdee/jdk/jdk1.8.0_161/bin/jmap -dump,format=b,file=/dump.bin <pid>


MAT工具下载地址:https://www.eclipse.org/mat/downloads.php

建议进行分析的电脑内存要有8G以上剩余内存,以免无法打开宕机日志,所以一般是在固定服务器或电脑进行分析。


也可参考众号文章详细了解:苍穹性能分析之JVM性能分析内存篇

https://mp.weixin.qq.com/s/6ggqAqStSbtkL6rzkcHXpg


示例:

图中Java进程的5.6G内存被1个线程消耗掉

image.png


通过如下线程堆栈可确认其属于二开功能导致的OOM内存溢出问题,可联系现场二开跟踪分析。

image.png


还可通过traceId在monitor查其日志进一步定位功能点

image.png


3. 使用Arthas工具分析CPU消耗高问题

参考链接:https://vip.kingdee.com/article/180683020100514560

近期我们将更新mservice苍穹镜像,里面会自带此工具,无需再手工安装。非容器环境仍需要手工安装运行。


4. 使用JDK工具手工收集分析线程堆栈

参考链接 https://vip.kingdee.com/article/202460967370584064

可结合monitor工具查询当前容器服务的living thread活动线程,多次刷新定位异常堆栈


赞 4