我的應用程序消耗100%的CPU - 超過200%。當我通過調用Thread.getAllStackTraces()
或kill -3
創建線程轉儲時,我發現有線程會佔用大量CPU時間,但是它們的堆棧跟蹤不可用。 CPU分析時不顯示它們。Java - 沒有堆棧跟蹤可用
線程爲:HandshakeCompletedNotify-Thread
,Keep-Alive-Timer
和process reaper
。但是它們的堆棧跟蹤不可用。據我所知,
Keep-Alive-Timer
和HandshakeCompletedNotify-Thread
不應該是原生的。另外,我們在jre中的java.policy或java.security文件中沒有特殊的權限。
如何獲得這些線程的堆棧跟蹤以解決高CPU消耗?
你已經[試過這個,對不對?](http://stackoverflow.com/questions/266373/one-could-use-a-profiler-but-why-not-just-halt-the-program/ 317160)#317160) – 2011-04-27 17:49:58
據我所知,Ctrl + Break對Windows有好處,對於linux來說,同樣的選擇是kill -3,這就是我試過的 – 2011-04-27 17:53:51
這三個CPU消耗很多很奇怪。我懷疑有些網絡問題,比如打開/關閉SSL連接的DDoS或類似的東西。 – 2011-04-27 18:06:15