Unix 是否可以选择是否动态生成堆转储?
我们有一个部署到运行在UNIX上的WebSphere服务器上的应用程序,我们遇到了两个问题:Unix 是否可以选择是否动态生成堆转储?,unix,jvm,websphere,signals,heap-dump,Unix,Jvm,Websphere,Signals,Heap Dump,我们有一个部署到运行在UNIX上的WebSphere服务器上的应用程序,我们遇到了两个问题: 几分钟后恢复的系统挂起-为了调查,我们需要线程转储(javacore) 系统挂起无法恢复,需要重新启动WebSphere—为了进行调查,我们需要线程转储和堆转储 问题是:当系统挂起时,我们不知道是问题1还是问题2 理想情况下,我们希望首先手动生成线程转储,然后等待系统是否恢复。如果没有,那么在重新启动WebSphere之前,我们将生成线程转储和堆转储 我知道kill-3(或kill-QUIT)命令。该命
kill-3
(或kill-QUIT
)命令。该命令将仅生成线程转储(如果参数IBM\u HEAPDUMP=false
),或线程转储和堆转储(如果IBM\u HEAPDUMP=true
)。但是,IBM_HEAPDUMP
必须在WebSphere启动之前设置,并且在WebSphere运行时不能更改
关于IBM_HEAPDUMP
参数和kill-3
命令,我的理解正确吗
另外,是否可以按照我描述的方式获取日志?(即,在生成JVM诊断时,选择是否动态生成堆转储)您的理解与我阅读的所有内容一致 然而,我相信你可以通过使用来完成你想要的。其中kill-3不可用,但可以在任何WebSphere系统上运行相同的命令 在wsadmin或wsadmin脚本中执行:
set jvm [$AdminControl completeObjectName type=JVM,process=server1,*]
$AdminControl invoke $jvm generateHeapDump
$AdminControl invoke $jvm dumpThreads
非常感谢你。在阅读您的响应之后,我还找到了关于从WebSphere生成堆转储的链接:。它包含更详细的解释。