2013-01-22 65 views

回答

43

您可以使用jstat一樣的價值腳本:

jstat -gc pid 

完整的文檔在這裏: http://docs.oracle.com/javase/7/docs/technotes/tools/share/jstat.html

+0

Thankyou看起來像我想要的,可能需要一段時間才能理解所有選項,但我基本上是在尋找多少堆使用 –

+2

所以我認爲OU是關鍵列,OC顯示最大值是分配 –

+4

@PaulTaylor您希望獲得歐盟和歐盟專欄 - 將它們相加可以爲您提供所用堆的數量。添加EC和OC列會爲您提供分配給堆的數量。 – pacoverflow

8

如果你開始執行的GC日誌記錄功能後,您獲得文件信息。 否則'jmap -heap'會給你你想要的。 查看jmap doc page瞭解更多。

請注意,jmap應該而不是在生產環境中使用,除非絕對需要,因爲該工具會暫停應用程序以確定實際的堆使用情況。通常這在生產環境中是不期望的。

10

對於Java 8,你可以使用下面的命令行來獲得堆空間利用率KB:

jstat -gc <PID> | tail -n 1 | awk '{split($0,a," "); sum=a[3]+a[4]+a[6]+a[8]; print sum}' 

命令基本上總結:

  • S0U:倖存者空間0利用率(KB )。
  • S1U:倖存者空間1的利用率(KB)。
  • 歐盟:伊甸園空間利用率(kB)。
  • OU:舊空間利用率(kB)。

您可能還想要包含元空間和壓縮類空間利用率。在這種情況下,你必須在awk和中加上[10]和[12]。

相關問題