我們有一個Wildfly實例,它在36核心服務器上運行一個簡單的java rest應用程序。該應用程序沒有在後臺運行的默認作業,它只是響應用戶請求(每天< 500)。在Wildfly上分析Java應用程序的遠程調試堆棧
我們的管理員今天晚上注意到一個奇怪的行爲。從上午2點開始,野蠻實例顯然使用了服務器的全部容量。那時沒有用戶可以使用該應用程序。在前一天晚上的最後一次用戶操作和今天上午的第一次用戶操作之間沒有日誌文件可用。
我已經在eclipse中啓動了遠程調試器,並且想要了解Wildfly開始的所有線程實際上都做了什麼?
Thread[MSC service thread 1-xx](Running)
68個條目。這些線程是什麼?他們能否影響性能/容量覆蓋率?我可以限制這些線程的數量嗎?我應該這樣做嗎?Deamon Thread [weld-worker-xx](Running)
25個條目。Thread[default task-x](Running)
8項。這些可能是實際的用戶任務?Thread[XNIO-1 I/O-x](Running)
2個條目。輸入/輸出到數據庫?或者任何文件,例如記錄e.q.?Daemon Thread [Transaction Reaper](Running)
Deamon Thread [Transaction Reaper Worker 0](Running)
Thread [Periodic Recovery](Running)
- 很多
<not responding>
。這實際上意味着什麼?線程正在運行,但我不允許看一下?
這是一個相當廣泛的問題,但我懷疑你的問題是與沒有響應的線程。我可以想象他們是那些正在努力研究和吃掉你的CPU的人。 – Kayaman
您可能還想發佈'kill -3'讓Wildfly將線程轉儲打印到標準輸出(應該被重定向到某個文件)。保存轉儲以供日後分析。 –
Kayaman
你好卡亞曼,謝謝你的提示。重啓後''無響應>'線程消失並且性能得到了合理的改善。我們將在下次出現問題時嘗試打印線程轉儲。我仍然對所有其他線程堆棧條目的解釋感興趣,只是爲了瞭解正在發生的事情。所以任何解釋都會很棒! –