服務(wù)器JVM等查看

常用

vmstat 3
pidstat -w 
pidstat -wt 
grep ctxt /proc/$pid/status
jmap -histo:live pid|less
jmap -heap pid
jmap -permstat pid
printf "%x\n" pid
jstack -l pid
jstat -gcutil pid 1000 100

JVM性能調(diào)優(yōu)監(jiān)控工具
JDK內(nèi)置工具使用
JAVA線程dump分析
JVM致命錯誤日志
1 . CPU的監(jiān)控

#  **vmstat**也可以查看總的上下文切換情況
vmstat 3
# 每個進程的context switching情況
pidstat -w 
# 細分到每個threads
pidstat -wt 
查看proc下的文件方法如下:
# pid=307
# grep ctxt /proc/$pid/status
voluntary_ctxt_switches: 41 #自愿的上下文切換
nonvoluntary_ctxt_switches: 16 #非自愿的上下文切換

cswch/s: 每秒任務(wù)主動(自愿的)切換上下文的次數(shù),當某一任務(wù)處于阻塞等待時,將主動讓出自己的CPU資源。
nvcswch/s: 每秒任務(wù)被動(不自愿的)切換上下文的次數(shù),CPU分配給某一任務(wù)的時間片已經(jīng)用完,因此將強迫該進程讓出CPU的執(zhí)行權(quán)。

2 . JVM性能查看

  • jinfo:可以輸出并修改運行時的java 進程的opts。
  • jps:與unix上的ps類似,用來顯示本地的java進程,可以查看本地運行著幾個java程序,并顯示他們的進程號。
  • jstat:一個極強的監(jiān)視VM內(nèi)存工具。可以用來監(jiān)視VM內(nèi)存內(nèi)的各種堆和非堆的大小及其內(nèi)存使用量。
  • jmap:打印出某個java進程(使用pid)內(nèi)存內(nèi)的所有'對象'的情況(如:產(chǎn)生那些對象,及其數(shù)量)。
  • jconsole:一個java GUI監(jiān)視工具,可以以圖表化的形式顯示各種數(shù)據(jù)。并可通過遠程連接監(jiān)視遠程的服務(wù)器VM
# 堆中活動的對象以及大小
jmap -histo:live pid|less
# 查看堆的使用狀況信息
jmap -heap pid
# 打印進程的類加載器和類加載器加載的持久代對象信息
jmap -permstat pid
# 查看CPU占用時間最長
printf "%x\n" pid
# 查看jvm線程運行狀態(tài),是否有死鎖現(xiàn)象等等信息
jstack -l pid
# 1000 ms統(tǒng)計一次gc情況統(tǒng)計 100 次
jstat -gcutil pid 1000 100

3 . Jstat 使用


  • class:統(tǒng)計class loader行為信息
  • compile:統(tǒng)計編譯行為信息
  • gc:統(tǒng)計jdk gc時heap信息
  • gccapacity:統(tǒng)計不同的generations(不知道怎么翻譯好,包括新生區(qū),老年區(qū),permanent區(qū))相應(yīng)的heap容量情況
  • gccause:統(tǒng)計gc的情況,(同-gcutil)和引起gc的事件
  • gcnew:統(tǒng)計gc時,新生代的情況
  • gcnewcapacity:統(tǒng)計gc時,新生代heap容量
  • gcold:統(tǒng)計gc時,老年區(qū)的情況
  • gcoldcapacity:統(tǒng)計gc時,老年區(qū)heap容量
  • gcpermcapacity:統(tǒng)計gc時,permanent區(qū)heap容量
  • gcutil:統(tǒng)計gc時,heap情況

S0 : Heap上的 Survivor space 0 區(qū)已使用空間的百分比
S0C:S0當前容量的大小
S0U:S0已經(jīng)使用的大小
S1 — Heap上的 Survivor space 1 區(qū)已使用空間的百分比
S1C:S1當前容量的大小
S1U:S1已經(jīng)使用的大小
E — Heap上的 Eden space 區(qū)已使用空間的百分比
EC:Eden space當前容量的大小
EU:Eden space已經(jīng)使用的大小
O — Heap上的 Old space 區(qū)已使用空間的百分比
OC:Old space當前容量的大小
OU:Old space已經(jīng)使用的大小
P — Perm space 區(qū)已使用空間的百分比
OC:Perm space當前容量的大小
OU:Perm space已經(jīng)使用的大小
YGC — 從應(yīng)用程序啟動到采樣時發(fā)生
Young GC 的次數(shù)
YGCT– 從應(yīng)用程序啟動到采樣時
Young GC 所用的時間(單位秒)
FGC — 從應(yīng)用程序啟動到采樣時發(fā)生
Full GC 的次數(shù) FGCT– 從應(yīng)用程序啟動到采樣時
Full GC 所用的時間(單位秒)
GCT — 從應(yīng)用程序啟動到采樣時用于垃圾回收的總時間(單位秒),它的值等于YGC+FGC

4 . JVM啟動參數(shù)

# JVM致命錯誤日志
-XX:ErrorFile=./hs_err_pid<pid>.log
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容