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

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

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

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.txt。

如果执行该命令报错The -F option can be used when the target process is not responding,则需要加 -F参数强制执行。

3)最终生成的adminserver.txt文件放在jdk/bin目录下,这个也就是javacore堆栈信息。同理,admin_client进程的javacore堆栈一样的方法收集即可。


二、Windows环境操作步骤

1)打开任务管理器-详细信息页签,找到控制台对应的javaw.exe进程,选中其中一个,右键-打开文件所在位置。


2)即可进入对应的jdk/bin目录,如下图所示位置。

直接在这里输入cmd回车,即可打开命令窗口。

也可以通过以下方式打开命令窗口:

进入对应的jdk/bin目录下

3)执行命令 .\jstack 552 > adminserver.txt 回车(注意这里的 \ 方向与linux环境不同),即可收集pid为552进程对应的堆栈信息,adminserver.txt为文件名,您可以自己修改为其他文件名,如1.txt、552.txt。

4)最终生成的adminserver.txt文件放在jdk/bin目录下,这个也就是adminserver进程的javacore堆栈信息。

5)同理,admin_client进程的javacore堆栈一样的方法收集即可。


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

1 业务场景当管理控制台界面出现加载实例特别慢,群集控制器界面刷新实例特别慢,补丁下载任务一直卡住等场景时,需要收集控制台线程堆栈...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息