2014-01-07 176 views
0

我想監視一些java應用程序的cpu使用情況。我不想使用類似 的工具jconsole(JMX)如何通過java進程查找cpu使用情況

如果有任何方法可以通過java代碼檢查?

+2

執行此操作的方法是使用JMX。您可以像Java代碼一樣從Java代碼中調用JMX。 –

+0

或者如果你有Linux,你可以在外部使用'ps'或讀取'/ proc/{pid}'。 –

+0

我想java進程的CPU使用率的百分比。我怎樣才能使用JMX? – Saurav

回答

0

一種方法是使用

Runtime.getRuntime().exec(command); 

和運行top | grep java命令。

1

使用JavaSysMon

目前,它的報道:

  • 進程表(也可作爲一棵樹),包括PID,PPID,名稱, 命令行,用戶,進程大小,常駐進程大小,用戶時間, 和內核時間。
  • 正常運行時間
  • 當前進程的PID
  • 達爾和免費RAM
  • 達爾和自由交換
  • CPU使用率
  • CPU頻率
  • CPU數量

您也可以使用jmx mbeans或使用Runtime.exec()獲取PID,並使用該調用平臺特定的命令(如ps)。

+0

你可以請檢查如何使用getCPUUsage我使用CpuTimes.getCPUUsage但它總是返回1.0 – Saurav

+0

@Saurav請提供代碼片段。 – Vipin

+0

CpuTimes ct = monitor.cpuTimes(); \t \t ct.getCpuUsage(ct); – Saurav

0

您應該從Java類本身檢索MX Bean ThreadMXBean並使用方法get*CpuTime()

否則,您可以使用良好的舊版top和grep對您的Java進程進行PID控制。

如果你夠勇敢的話,linux-tools包中還有perf工具。

希望有幫助!

相關問題