JVM問題常用排查命令

JVM問題常用排查命令

@Date 2017.05.23

JVM調優問題

  • CPU使用率與Load值偏大 : Thread count以及GC count
  • 關鍵接口響應時間很慢 : GC time以及GC log中的STW的時間
  • 發生Full GC或者Old CMS GC非常頻繁 : 內存泄露

jps

# -m:輸出main method的參數
# -l:輸出完全的包名,應用主類名,jar的完全路徑名 
# -v:輸出jvm參數 
# -V:輸出通過flag文件傳遞到JVM中的參數(.hotspotrc文件或-XX:Flags=所指定的文件
jps -mlvV

jstack

# 線程的堆棧跟蹤,可以得知哪些線程被阻塞或正等待,以便於查找如線程死鎖的原因
jstack pid
# -m:打印java和native frames
jstack -m pid

jinfo

# 查看應用啓動啓動參數
jinfo -flag pid

jmap

# 查看堆的情況
jmap -heap pid
# dump內存二進制信息(dump時系統會被短暫暫停FULL GC)
# live子選項:只輸出活的對象
jmap -dump:live,format=b,file=/home/admin/heap.bin pid
jmap -dump:format=b,file=/home/admin/heap.bin pid
# 堆佔用情況
jmap -histo pid | head -10

jstat

# 查看GC情況
# S0 -Heap上的Survivor space 0區已使用空間的百分比 
# S1 -Heap上的Survivor space 1區已使用空間的百分比 
# E -Heap上Eden space區已使用空間的百分比 
# O -Heap上的Old space區已使用空間的百分比 
# P -Perm space區已使用空間的百分比 
# YGC -從應用程序啓動到採樣時發生Yang GC 的次數 
# YGCT -從應用程序啓動到採樣時Yang GC所用的時間【單位秒】 
# FGC -從應用程序啓動到採樣時Full GC的次數 
# FGCT -從應用程序啓動到採樣時Full GC所用的時間 
# GCT -從應用程序啓動到採樣時用於垃圾回收的總時間【單位秒】
jstat -gcutil pid 1000
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章