如何收集管理控制台线程堆栈信息

1 业务场景
当管理控制台界面出现加载实例特别慢,群集控制器界面刷新实例特别慢,补丁下载任务一直卡住等场景时,需要收集控制台线程堆栈分析。


2 解决方案
首先我们要知道管理控制台进程包括控制台图形界面admin_client进程以及控制台后台adminserver进程,在linux环境下,这两者都以java进程运行,如下图所示:
可通过执行ps -ef |grep admin_client 命令找到控制台界面的进程号是13761。

可通过执行ps -ef |grep adminserver 命令找到控制台后台的进程号是13597。

而在windows操作系统中,可在任务管理器-详细信息页签中找到两个javaw.exe的进程,即控制台的admin_client进程和adminserver进程,比如这里进程号是552和18816。这里不需要分辨出哪个是admin_client进程,哪个是adminserver进程,因为两个进程的堆栈信息都需要收集。

如果您有需要,想分辨出哪个是admin_client进程,哪个是adminserver进程,可通过选中其中一个javaw.exe进程,右键-打开文件所在位置,可进入到对应的jdk/bin目录下,如下图所示位置,找到jconsole.exe双击运行。

接着会弹出这个窗口,将鼠标在对应的进程号上停留1秒钟,可显示出该pid号对应哪个进程,如下图,18816对应的是admin_client进程,552对应的是adminserver进程。


3 操作步骤
接下来收集管理控制台线程堆栈:
一、Linux环境操作步骤:
1)执行ps -ef |grep osgi命令,找到当前EAS环境安装位置,如下图所示。

2)进入对应的jdk/bin目录下,执行命令 ./jstack 13597 > adminserver.txt 即可收集pid为13597进程对应的堆栈信息,13597为adminserver进程对应的Pid号,adminserver.txt为文件名,您可以自己修改为其他文件名,如1.txt、13597.
如何收集管理控制台线程堆栈信息
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



