我可以從命令行檢查正在運行的JVM的堆使用情況,我的意思是實際使用情況,而不是使用Xmx分配的最大量。如何從命令行檢查正在運行的JVM的堆使用情況?
我需要它的命令行,因爲我沒有獲得一個窗口環境,我想基礎上,應用程序在碼頭應用服務器中運行
我可以從命令行檢查正在運行的JVM的堆使用情況,我的意思是實際使用情況,而不是使用Xmx分配的最大量。如何從命令行檢查正在運行的JVM的堆使用情況?
我需要它的命令行,因爲我沒有獲得一個窗口環境,我想基礎上,應用程序在碼頭應用服務器中運行
您可以使用jstat一樣的價值腳本:
jstat -gc pid
完整的文檔在這裏: http://docs.oracle.com/javase/7/docs/technotes/tools/share/jstat.html
如果你開始執行的GC日誌記錄功能後,您獲得文件信息。 否則'jmap -heap'會給你你想要的。 查看jmap doc page瞭解更多。
請注意,jmap
應該而不是在生產環境中使用,除非絕對需要,因爲該工具會暫停應用程序以確定實際的堆使用情況。通常這在生產環境中是不期望的。
對於Java 8,你可以使用下面的命令行來獲得堆空間利用率KB:
jstat -gc <PID> | tail -n 1 | awk '{split($0,a," "); sum=a[3]+a[4]+a[6]+a[8]; print sum}'
命令基本上總結:
您可能還想要包含元空間和壓縮類空間利用率。在這種情況下,你必須在awk和中加上[10]和[12]。
Thankyou看起來像我想要的,可能需要一段時間才能理解所有選項,但我基本上是在尋找多少堆使用 –
所以我認爲OU是關鍵列,OC顯示最大值是分配 –
@PaulTaylor您希望獲得歐盟和歐盟專欄 - 將它們相加可以爲您提供所用堆的數量。添加EC和OC列會爲您提供分配給堆的數量。 – pacoverflow