2012-07-13 80 views
2

我的基於Web的Java EE應用程序是基於以下技術:確定在Tomcat中運行的服務,使用100%的CPU使用率

  • 框架工作:Struts的2.0
  • 服務器:Tomcat的6.0
  • 前端UI:JSP,JSTL/Struts標籤,HTML
  • 數據庫:Microsoft SQL Server 9.00.2047.00
  • 語言:核心Java,XML,XSLT。

現在我面臨的問題是,我的Web應用程序的某些進程會消耗更多的CPU使用量。有時我的Tomcat服務器會使用100%cpu;這就是爲什麼我的電腦掛起。我無法確定哪個進程會導致這個100%的CPU使用率。

現在我正在尋找任何第三方應用程序或任何實用程序,它提供的CPU使用情況信息詳細信息以及運行在Tomcat中的正在運行的進程(服務)的名稱。

回答

3

聽起來你正在尋找一個Java Profiler ...我聽說過HPROF的好東西(需要一點時間去習慣,但應該提供你需要的所有信息(並且它是免費的)。是由太陽提供HPROF一些指令

http://java.sun.com/developer/technicalArticles/Programming/HPROF.html

我沒有親自運行在服務器上,但我誰也非常找出像你這樣的問題同夥 - 它應該給你你需要什麼

也要記住,觀察過程會改變過程的性能 - 所以s不是在生產中運行的東西。請參閱Observer effect

+0

hi Nick Rippe,首先感謝您的回覆,您能幫我解釋如何使用HPROF與基於j2ee的web應用程序[部署在tomcat中] – 2012-07-16 06:38:25

+0

具體說明會因操作系統等而異 - 但一般情況下,您將要將-agentlib:hprof [=選項]添加到您的環境變量中(請按照第一個鏈接中的說明進行配置)。這裏有一些更詳細的信息(特定於linux):http://www.coderanch.com/t/432949/Performance/java/Tomcat-Heap-Dump-SOLVED – 2012-07-16 13:58:01