2010-11-10 59 views

回答

3

有很多方法可以做到這一點。

  • 發送SIGQUIT,或者通過CTRL + \CTRL + 在Windows上)或用kill -3 <pid>

  • 使用jstack <pid>(或jstack -F <pid>如果進程被掛起)

  • 使用VisualVM

  • 使用WLST和threadDump()

第一個選項通常有我的偏好。如果您需要編寫某種監控工具,WLST功能非常強大。

+0

kill -3是如何工作的?因爲我有一臺生產服務器,並且殺死它意味着它會停止服務請求? – ssdsd 2010-11-10 03:27:45

+0

@ssdsd:不,它不會。 kill -3發送SIGQUIT,而不是SIGKILL(kill -9),也不發送SIGTERM(kill -15)。它不會「殺死」這個過程。 – 2010-11-10 03:55:13

+0

所以,如果我運行這個命令會發生什麼事實上,我在哪裏可以找到它的日誌文件? – ssdsd 2010-11-10 06:34:10

0

對於IBM Java VM: 設置環境變量'IBM_HEAPDUMP = true'並在生成線程轉儲(kill -3)時重新啓動託管web服務器..下一次,堆轉儲也將生成。

相關問題