簡體   English   中英

在Jboss Java應用程序中如何識別導致JVM CPU利用率達到90%到100%的線程?

[英]how to identify the thread which is causing JVM CPU utilization is reaching to 90 to 100% in Jboss java application?

我們的Java應用程序(耳朵)已部署在J Boss + Linux中,並且我們正在使用mod集群,並且總共有8個JV M或j Boss實例。

我們可以看到,合資公司每天的CPU利用率中的一兩個達到100%,並且應用程序非常緩慢。

我試圖通過使用j堆棧來獲取線程轉儲,並殺死Linux命令來確定引起線程。但是不幸的是,如果這些命令的CPU利用率達到60%以上,則JV M不會響應。

有沒有最簡單的方法來識別導致問題增加CPU使用率的線程/方法/類名稱?

誰能盡快提供解決方案?

要從掛起的進程獲取堆棧,請使用jstack -F <PID> ,請參見oracle docs

其他解決方案可以在這里找到

在您編寫JVM時,它沒有響應,因此無法獲取有關已執行的類/方法的詳細信息。 因此,“是否有最簡單的方法”的答案將是“否”。 ;-)

但這可能會幫助您或其他任何人(2.5年前被問到的問題)在這種情況下我會做什么:

  1. 識別linux線程(為此,我使用小型linux工具“ threadcpu”)。
  2. 對找到的PID進行跟蹤-可能使用更長的字符串(“ -s 1024”)。

這可能會提示您當前正在執行哪個類/方法。 如果您看到例如僅在一個類中使用的數百個SQL查詢,那么這可能對您有很大幫助。

可以從這里下載“ threadcpu”: tuxad.com

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM