2012-06-19 131 views
2

我有一個生產系統在三個tomcat服務器上運行。突然之間,我的一個tomcat服務器顯示100%的CPU使用率,我已經從池中取出。在tomcat中分析高CPU使用率

任何人都可以指導我如何開始調試此問題?任何工具/實用程序?

感謝, 哈里什

回答

2

我想嘗試的第一件事是讓一個線程轉儲,看看什麼東西運行。

this article

生成Java線程轉儲通過發送 SIGQUIT信號到JVM過程中產生的線程轉儲。將此信號發送給過程的方法有多種。

在Unix中,使用「kill -3」,其中pid是JVM的進程ID。

在Windows中,窗口上按CTRL + BREAK在JVM運行

這在您的應用程序的線程中運行,將至少表明你,並給你一個基本指示,以什麼回事。 jstack將提供獲取此信息的其他方法,並且對於從控制檯斷開的服務器進程可能更容易。

通過使用VisualVM來報告線程/ CPU +內存使用情況,可以獲得更詳細的報告。

+1

Tomcat FAQ有一個關於生成線程轉儲的頁面:http://wiki.apache.org/tomcat/HowTo#How_do_I_obtain_a_thread_dump_of_my_running_webapp_.3F –

0

看看JTop,它就像unix top,但是對於JVM中的線程。