常用的幾個命令行工具有jps、jstat、jinfo、jmap、jstack等。這幾個工具可以通過安裝openjdk-devel-debug包獲取。
yum install -yjava-1.8.0-openjdk-devel-debug
1. jps 類似linux的ps命令,常用選項有
-l輸出應用程序main class的完整package名或者應用程序的jar文件完整路徑名
-m輸出傳遞給main 方法的參數(shù),在嵌入式jvm上可能是null
-v輸出傳遞給JVM的參數(shù)
示例:
jps -lvm
2. jstat是JDK自帶的一個輕量級小工具。全稱“Java Virtual Machine statistics monitoring tool”,用以判斷JVM是否存在內(nèi)存問題。
語法:jstat -
其中vmid指的是java進程pid,interval為間隔時間,單位是毫秒,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 — 從應用程序啟動到采樣時發(fā)生 Young GC 的次數(shù)
YGCT– 從應用程序啟動到采樣時 Young GC 所用的時間(單位秒)
FGC — 從應用程序啟動到采樣時發(fā)生 Full GC 的次數(shù)
FGCT– 從應用程序啟動到采樣時 Full GC 所用的時間(單位秒)
GCT — 從應用程序啟動到采樣時用于垃圾回收的總時間(單位秒)
3. jinfo用來查看jvm配置參數(shù)。
常用用法:
jinfo -flags 20659 //其中后面的數(shù)字是java進程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用來查看指定java進程內(nèi)存使用情況。
常用用法:
jmap pid #打印內(nèi)存使用的摘要信息
jmap –heap pid #java heap信息
jmap -histo:live pid #統(tǒng)計對象count ,live表示在使用
jmap -histo pid >mem.txt #打印比較簡單的各個有多少個對象占了多少內(nèi)存的信息,一般重定向到一個文件
jmap -dump:format=b,file=mem.dat pid #將內(nèi)存使用的詳細情況輸出到mem.dat 文件
5 jstack用于查看進程內(nèi)線程棧的工具。當程序出現(xiàn)死鎖時,我們可以通過jstack打印線程棧找到問題。
用法是:
jstack pid
-
JVM
+關注
關注
0文章
159瀏覽量
12439
原文標題:監(jiān)控jvm的工具
文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
在STM32實現(xiàn)命令行
Linux命令行工具
linux命令行下載工具
caxa命令行中的應用
監(jiān)控網(wǎng)絡使用情況的Linux命令行工具
Xilinx軟件命令行工具:XSCT開發(fā)和調(diào)試
Xilinx軟件命令行工具進行開發(fā)和調(diào)試
Golang基于flag庫實現(xiàn)一個命令行工具
PetaLinux工具文檔:命令行參考指南

評論