2014-08-27 66 views
1

我正在尋找一種方法來從Linux上的Java進程中提取堆大小(最小,最大,使用)。我需要一個光明的工具/命令來完成這項工作。大型監控軟件包不是一種選擇。Linux上的JAVA堆大小監視

我做了一些googleing和更多,但無法找到一個可行的選擇。目前我發現的唯一可能的選擇是使用JMX協議。我在Java appication上啓用了JMX,並使用各種使用JMX協議/庫實現的Java工具成功地進行了輪詢。但是這些Java工具很慢,在啓動時分配內存時佔用了很多CPU。我想要的是一個簡單的工具命令行,它將討論例如JMX協議並輪詢堆進程的大小。

我正在使用IBM的J9版本的Java,並且jstat工具在那裏不可用。

任何想法嗎?

+1

您可以嘗試JProfiler堆分析工具。或者JVisualVm爲此目的與jdk一起發貨。 – 2014-08-27 08:53:58

+1

需要約15行代碼才能自行輪詢JMX。 – nablex 2014-08-27 09:00:38

+0

nablex在哪裏可以找到這15行代碼。 JMX是一個非http協議,不容易與之通話。你的意思是15行Java代碼?我已經有了一個Java客戶端,但是如果我幾乎同時在十分之一的服務器上運行它,它會很慢並且需要CPU。你能再詳細一點嗎? – bortek 2014-08-27 10:30:03

回答

1

您的需求現在可能已經被照顧了,但對於其他可能在這個線程中遇到的人來說,一個選項是一個名爲'jvmtop'的工具(鏈接:https://code.google.com/p/jvmtop/)。它適用於IBM J9 JVM(等等)。