常用的幾個(gè)命令行工具有jps、jstat、jinfo、jmap、jstack等。這幾個(gè)工具可以通過(guò)安裝openjdk-devel-debug包獲取。
yum install -yjava-1.8.0-openjdk-devel-debug
1. jps 類似linux的ps命令,常用選項(xiàng)有
-l輸出應(yīng)用程序main class的完整package名或者應(yīng)用程序的jar文件完整路徑名
-m輸出傳遞給main 方法的參數(shù),在嵌入式jvm上可能是null
-v輸出傳遞給JVM的參數(shù)
示例:
jps -lvm
2. jstat是JDK自帶的一個(gè)輕量級(jí)小工具。全稱“Java Virtual Machine statistics monitoring tool”,用以判斷JVM是否存在內(nèi)存問(wèn)題。
語(yǔ)法:jstat -
其中vmid指的是java進(jìn)程pid,interval為間隔時(shí)間,單位是毫秒,count為次數(shù)。
常用用法:
jstat -gcutil20659 1000 2
輸出內(nèi)容為:
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
0.00 99.38 65.57 3.61 97.37 89.84 1 0.015 0 0.000 0.015
0.00 99.38 65.57 3.61 97.37 89.84 1 0.015 0 0.000 0.015
S0 — Heap上的 Survivor space 0 區(qū)已使用空間的百分比
S1 — Heap上的 Survivor space 1 區(qū)已使用空間的百分比
E — Heap上的 Eden space 區(qū)已使用空間的百分比
O — Heap上的 Old space 區(qū)已使用空間的百分比
P — Perm space 區(qū)已使用空間的百分比
YGC — 從應(yīng)用程序啟動(dòng)到采樣時(shí)發(fā)生 Young GC 的次數(shù)
YGCT– 從應(yīng)用程序啟動(dòng)到采樣時(shí) Young GC 所用的時(shí)間(單位秒)
FGC — 從應(yīng)用程序啟動(dòng)到采樣時(shí)發(fā)生 Full GC 的次數(shù)
FGCT– 從應(yīng)用程序啟動(dòng)到采樣時(shí) Full GC 所用的時(shí)間(單位秒)
GCT — 從應(yīng)用程序啟動(dòng)到采樣時(shí)用于垃圾回收的總時(shí)間(單位秒)
3. jinfo用來(lái)查看jvm配置參數(shù)。
常用用法:
jinfo -flags 20659 //其中后面的數(shù)字是java進(jìn)程pid
輸出內(nèi)容如下:
Attaching to process ID 20659, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.161-b14
Non-default VM flags: -XX:CICompilerCount=2 -XX:InitialHeapSize=67108864 -XX:MaxHeapSize=1069547520 -XX:MaxNewSize=356515840 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=22020096 -XX:OldSize=45088768 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC
Command line: -Dcatalina.base=/usr/share/tomcat -Dcatalina.home=/usr/share/tomcat -Djava.endorsed.dirs= -Djava.io.tmpdir=/var/cache/tomcat/temp -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
4. jmap用來(lái)查看指定java進(jìn)程內(nèi)存使用情況。
常用用法:
jmap pid #打印內(nèi)存使用的摘要信息
jmap –heap pid #java heap信息
jmap -histo:live pid #統(tǒng)計(jì)對(duì)象count ,live表示在使用
jmap -histo pid >mem.txt #打印比較簡(jiǎn)單的各個(gè)有多少個(gè)對(duì)象占了多少內(nèi)存的信息,一般重定向到一個(gè)文件
jmap -dump:format=b,file=mem.dat pid #將內(nèi)存使用的詳細(xì)情況輸出到mem.dat 文件
5 jstack用于查看進(jìn)程內(nèi)線程棧的工具。當(dāng)程序出現(xiàn)死鎖時(shí),我們可以通過(guò)jstack打印線程棧找到問(wèn)題。
用法是:
jstack pid
-
JVM
+關(guān)注
關(guān)注
0文章
157瀏覽量
12188
原文標(biāo)題:監(jiān)控jvm的工具
文章出處:【微信號(hào):aming_linux,微信公眾號(hào):阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論