2012-01-12 55 views

回答

1

您可以使用包含在JDK中的jconsole工具。或者當你運行一個Java應用程序時,你可以使用參數「-verbose:gc」。

2

我認爲分析垃圾收集器日誌最有效的方法是查看輸出本身。我們的生產服務器都使用併發標記運行清除收集和我有日誌與選項-Xloggc:$GCLOGFILE -XX:+PrintGCDetails運行,如果環境過程中遇到問題我

  1. 首先檢查全部GC的量grepping爲「全GC」和
  2. 檢查CMS的數量和頻率,並在收集階段查找錯誤消息(通常以「失敗...」開頭)。

我通常還會查看線程列表並檢查垃圾收集器消耗的CPU時間量。我用-p <java-pid>參數運行頂部,然後按下「H」,這樣可以看到消耗最多cpu時間的pid。然後可以將它與線程轉儲進行匹配,以查看gc線程是否是最耗時的線程。每個線程都有一個顯示在線程轉儲中的pid,該轉儲是十六進制的,可以匹配頂部的pid。

查看GC消耗的CPU時間並將其與日誌輸出相匹配非常重要。我多次嘗試GCViewer,但從GC-Data的可視化顯示中沒有真正獲得有用的提示。

0

我認爲你可以使用選項登錄GC活動在日誌文件:

-verbose:GC -XX:+ PrintGCTimeStamps -XX:+ PrintGCDetails -Xloggc:gc.log

您可以利用此記錄軟件爲HPJmeter