如何生成和分析 WebSphere 线程转储?
作为一个WebSphere administrator,你应该知道如何获取线程转储并使用工具进行分析。
线程转储通常用于诊断应用程序性能问题,如死锁、挂起线程和Java线程中的瓶颈。
在WebSphere中获取线程转储
建议在5-8秒内获取多个线程转储。您可以使用以下任何方法生成线程转储。
1. 使用wsadmin.sh
- 登录到WAS服务器
- 进入配置文件和bin文件夹
- 执行wsadmin.sh文件
[root@localhost bin]# ./wsadmin.sh WASX7209I: 使用SOAP连接器连接到节点localhostCellManager01上的进程"dmgr";进程的类型是:DeploymentManager WASX7029I: 输入"$Help help"获取帮助。 wsadmin>
- 将JVM名称设置为变量
set jvm [$AdminControl completeObjectName type=JVM,process=server1,*]
注意:server1是示例。请将其更改为实际的JVM名称。
wsadmin>set jvm [$AdminControl completeObjectName type=JVM,process=server1,*] WebSphere:name=JVM,process=server1,platform=proxy,node=localhostNode01,j2eeType=JVM,J2EEServer=server1,version=8.5.5.0,type=JVM,mbeanIdentifier=JVM,cell=localhostCell01,spec=1.0 wsadmin>$AdminControl invoke $jvm dumpThreads
这将生成一个线程转储,并将其保存在配置文件路径下。
2. 使用kill
- 使用ps命令查找JVM进程ID
- 执行kill -3 $PID
# kill -3 $PID
您将在配置文件路径下找到转储文件。
3. 使用WebSphere管理控制台
- 登录到DMGR控制台
- 导航到左侧的故障排除
- 选择JVM并点击“Java core”。
获取线程转储后,您可以使用以下工具进行分析。
分析WebSphere线程转储
分析转储始终具有挑战性,以下免费工具将对您有所帮助。
IBM线程转储分析器(TDA)
使用IBM TDA,您可以识别Java线程中的挂起、死锁和瓶颈。
您可以下载IBM TDA from here。这只是一个jar文件,一旦下载完成,您可以执行以下命令启动GUI。
java -jar jca457.jar
- 点击“文件”>>“打开线程转储”
- 浏览文件夹并选择要分析的转储文件
这将需要几秒钟的时间,然后您可以进行以下分析:
- CPU使用率
- 内存段
- 用户进程资源限制
- 命令行参数
- 环境变量
- 共享类缓存
- 本机内存
- 线程状态
- 方法
所有这些都在“分析”菜单下可用。下面是一个快速查看线程状态分析的例子:
因此,通过IBM TDA进行您所需的分析,祝您玩得开心。
现在,您应该能够为应用程序故障排除生成和分析线程转储。有更多的analyzer explained here。