jps
可以查看具體的虛擬機的進程
jstat
jstat -gc 進程號
- S0C:第一個倖存區的大小
- S1C:第二個倖存區的大小
- S0U:第一個倖存區的使用大小
- S1U:第二個倖存區的使用大小
- EC:伊甸園區的大小
- EU:伊甸園區的使用大小
- OC:老年代大小
- OU:老年代使用大小
- MC:方法區大小
- MU:方法區使用大小
- CCSC:壓縮類空間大小
- CCSU:壓縮類空間使用大小
- YGC:年輕代垃圾回收次數
- YGCT:年輕代垃圾回收消耗時間
- FGC:老年代垃圾回收次數
- FGCT:老年代垃圾回收消耗時間
- GCT:垃圾回收消耗總時間
jstat -gcnew 進程號
- S0C:第一個倖存區大小
- S1C:第二個倖存區的大小
- S0U:第一個倖存區的使用大小
- S1U:第二個倖存區的使用大小
- TT:對象在新生代存活的次數
- MTT:對象在新生代存活的最大次數
- DSS:期望的倖存區大小
- EC:Eden區的大小
- EU:Eden區的使用大小
- YGC:年輕代垃圾回收次數
- YGCT:年輕代垃圾回收消耗時間
- MC:方法區大小
- MU:方法區使用大小
- CCSC:壓縮類空間大小
- CCSU:壓縮類空間使用大小
- OC:老年代大小
- OU:老年代使用大小
- YGC:年輕代垃圾回收次數
- FGC:老年代垃圾回收次數
- FGCT:老年代垃圾回收消耗時間
- GCT:垃圾回收消耗總時間
jstack
jstack -l 進程號 >> error.log 輸出當前線程的堆棧狀態
-l :除堆棧之外,顯示關於鎖的附加信息
-F:強制輸出線程堆棧
-m:如果調用本地方法的話,可以顯示C/C++的堆棧
jmap
jmap -dump:format=b,file=heapdump.phrof pid
以hprof二進制格式轉儲Java堆到指定filename的文件中。live子選項是可選的。如果指定了live子選項,
堆中只有活動的對象會被轉儲。想要瀏覽heap dump,你可以使用jhat(Java堆分析工具)讀取生成的文件。
這個命令執行,JVM會將整個heap的信息dump寫入到一個文件,heap如果比較大的話,
就會導致這個過程比較耗時,並且執行的過程中爲了保證dump的信息是可靠的,所以會暫停應用,
線上系統慎用。
jhat heapdump.phrof 解析文件就可以看到堆棧信息快照文件