如何生成和分析 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

类似文章