2013-01-18 26 views
1

我有一個8Go編譯服務器,運行一個Jenkins實例,一個Jenkins從屬代理。所有作業運行相同的腳本sh。這個腳本啓動其他腳本和一個大螞蟻構建。在這個版本中,可以啓動幾個JVM(帶有fork,junitreports等的javac)。監視所有正在運行和產生的JVM

我需要跟蹤OutOfMemoryError。但是我無法用工具來監視產生的Java進程,因爲它們是暫時的。

我正在尋找一種工具來跟蹤服務器上運行的所有當前和將來的JVM,並顯示內存圖。它存在嗎?

+2

我不明白它爲什麼被關閉。無論如何,JVisualVM正是我正在尋找的。我不知道它默認隨JDK一起發貨。 – Zofren

+1

我不認爲這是「不建設性」。有人可能會爭辯說,這是一個超級用戶問題,但又是關於JVM進程的。我投票重新開放。 – fgysin

+0

http://code.google.com/p/jvmtop/也可能是一個選項 – MRalwasser

回答

3

好問題。我知道有幾種工具可以監視/檢查JVM實例,但據我記憶,其中大部分依賴於JVM已啓動並運行。

我想一個解決辦法是有一個定期運行的腳本JVM實例哪些檢查(使用命令jps),然後開始其他監測工具...

+0

JVisualVM做到了這一招,甚至是遙不可及。 – Zofren

0

我從來沒有聽說過這樣的工具。

但是你可以做一個shell腳本類似的定期運行

jps | grep -v -i 'jps' | cut -d' ' -f 1 | xargs -n1 jmap -heap 
0

我會建議運行JConsole。它是免費的,並且是一個非常簡單的工具。您可以跟蹤對象的生活,應用程序的質量(通過檢查伊甸園空間區域和其他區域)。您可以獲得完整的JVM內存使用情況分析。

默認情況下,您在下載JDK時獲得JConsole。