環境:JDK1.8.0_92joX28資訊網——每日最新資訊28at.com
JDK(Java Development Kit)提供了一系列的命令行工具,用于幫助開發人員進行問題排查。以下是關于JDK命令行工具問題排查的一些常見操作:joX28資訊網——每日最新資訊28at.com
- 使用jps查看虛擬機進程:jps是一個用于顯示Java虛擬機(JVM)進程信息的工具。通過jps指令可以獲取到正在運行的JVM進程的ID(PID),這對于后續的問題排查非常有用。
- 使用jstat監視虛擬機運行時信息:jstat是一個用于監視虛擬機運行時各種信息的工具。它可以監控類加載數量、內存使用情況、垃圾回收情況等信息,對于排查內存泄漏、GC問題等非常有用。
- 使用jstack獲取線程堆棧信息:jstack是一個用于獲取Java線程堆棧信息的工具。當JVM進程出現異常或卡頓時,可以使用jstack指令獲取線程堆棧信息,以幫助開發人員找到問題所在。
- 使用jmap生成堆轉儲文件:jmap是一個用于生成Java堆轉儲文件的工具。當JVM內存溢出或需要排查內存問題時,可以使用jmap指令生成堆轉儲文件,以幫助開發人員找到內存泄漏或垃圾回收等問題。
以上是JDK命令行工具問題排查中常用的幾個操作,它們可以幫助開發人員快速定位和解決問題。當然,還有其他JDK提供的工具也可以用于問題排查,例如jconsole、jvisualvm等。joX28資訊網——每日最新資訊28at.com
JDK命令行工具所在目錄%JAVA_HOME%/bin 目錄下:joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
這里你會發現這些工具的大小基本上都是17kb左右。為何?因為這些工具大部分都是joX28資訊網——每日最新資訊28at.com
%JAVA_HOME%/bin/tools.jar這個jar中的類實現的,而這里的可執行exe文件只是對這寫功能做了簡單的一個封裝而已。joX28資訊網——每日最新資訊28at.com
對應到tools.jar中joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
接下來對常用的工具做介紹:joX28資訊網——每日最新資訊28at.com
1.jps
顯示所有當前正在運行的HosSpot虛擬機進程。joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
參數:joX28資訊網——每日最新資訊28at.com
-l :輸出完整的包名+類名,如果執行的是jar包,輸出jar包的路徑。joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
-m:輸出啟動程序時,傳的參數信息。joX28資訊網——每日最新資訊28at.com
測試程序:joX28資訊網——每日最新資訊28at.com
public class JpsMain { public static void main(String[] args) throws Exception { System.out.println(Arrays.toString(args)) ; System.in.read() ; }}
啟動參數設置:joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
啟動時設置了3個參數分別是:a , b , cjoX28資訊網——每日最新資訊28at.com
查看:joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
-v:輸出進程啟動時的jvm參數。joX28資訊網——每日最新資訊28at.com
還是以上面的測試程序為例:joX28資訊網——每日最新資訊28at.com
啟動jvm參數設置:joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
查看:joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
-q:只輸出進程號。joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
到此jps工具介紹完畢。joX28資訊網——每日最新資訊28at.com
2.jstat
用于監視虛擬機運行時的各種信息。如:類加載,內存,垃圾回收等信息。joX28資訊網——每日最新資訊28at.com
使用格式:joX28資訊網——每日最新資訊28at.com
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
vmid:表示jvm進程號。joX28資訊網——每日最新資訊28at.com
interval:表示查詢間隔(單位秒 s,毫秒 ms)。joX28資訊網——每日最新資訊28at.com
count:表示查詢次數joX28資訊網——每日最新資訊28at.com
查看option有哪些選項信息(也就是可以監控哪些信息)joX28資訊網——每日最新資訊28at.com
命令:joX28資訊網——每日最新資訊28at.com
jstat -options
圖片joX28資訊網——每日最新資訊28at.com
-class: 顯示類加載,卸載的數量,總空間及加載所耗時。joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
-compiler:顯示JIT編譯器編譯過的方法,耗時等信息。joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
-gc:監視Java堆的使用情況,GC時間等信息。joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
S0C:第一個幸存區的大小joX28資訊網——每日最新資訊28at.com
S1C:第二個幸存區的大小joX28資訊網——每日最新資訊28at.com
S0U:第一個幸存區的使用大小joX28資訊網——每日最新資訊28at.com
S1U:第二個幸存區的使用大小joX28資訊網——每日最新資訊28at.com
EC:伊甸園區的大小joX28資訊網——每日最新資訊28at.com
EU:伊甸園區的使用大小joX28資訊網——每日最新資訊28at.com
OC:老年代大小joX28資訊網——每日最新資訊28at.com
OU:老年代使用大小joX28資訊網——每日最新資訊28at.com
MC:方法區大小joX28資訊網——每日最新資訊28at.com
MU:方法區使用大小joX28資訊網——每日最新資訊28at.com
CCSC:壓縮類空間大小joX28資訊網——每日最新資訊28at.com
CCSU:壓縮類空間使用大小joX28資訊網——每日最新資訊28at.com
YGC:年輕代垃圾回收次數joX28資訊網——每日最新資訊28at.com
YGCT:年輕代垃圾回收消耗時間joX28資訊網——每日最新資訊28at.com
FGC:老年代垃圾回收次數joX28資訊網——每日最新資訊28at.com
FGCT:老年代垃圾回收消耗時間joX28資訊網——每日最新資訊28at.com
GCT:垃圾回收消耗總時間joX28資訊網——每日最新資訊28at.com
-gcutil:該選項與-gc基本相同,但他主要關注的是已使用空間占總空間的百分比。joX28資訊網——每日最新資訊28at.com
S0:幸存1區當前使用比例S1:幸存2區當前使用比例E:伊甸園區使用比例O:老年代使用比例M:元數據區使用比例CCS:壓縮使用比例YGC:年輕代垃圾回收次數FGC:老年代垃圾回收次數FGCT:老年代垃圾回收消耗時間GCT:垃圾回收消耗總時間
-gcnew:監視年輕代GC情況。joX28資訊網——每日最新資訊28at.com
joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
-gcold:監視老輕代GC情況。joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
示例:joX28資訊網——每日最新資訊28at.com
jstat -gc 16480 3s
每3秒統計一次gc信息。joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
3. jinfo
實時查看和調整虛擬機各項參數。joX28資訊網——每日最新資訊28at.com
使用:joX28資訊網——每日最新資訊28at.com
jinfo option pid
示例:
輸出當前jvm進程的完整信息joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
查詢具體jvm參數值信息:joX28資訊網——每日最新資訊28at.com
jinfo -flag CICompilerCount 16480
4. jmap
用于生成堆轉儲快照信息。joX28資訊網——每日最新資訊28at.com
使用格式:joX28資訊網——每日最新資訊28at.com
jmap [option] pid
option參數說明:joX28資訊網——每日最新資訊28at.com
-dump:生成Java堆轉儲快照joX28資訊網——每日最新資訊28at.com
jmap -dump:live,format=b,file=heap.bin <pid>
示例:joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
-heap:顯示Java堆詳細信息。如:使用的垃圾回收期,參數配置,分代信息等。joX28資訊網——每日最新資訊28at.com
jmap -heap <pid>
示例:joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
-histo:顯示堆中對象的統計信息,包括類,實例數,合計容量等。joX28資訊網——每日最新資訊28at.com
jmap -histo <pid>
示例:joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
5. jhat
堆轉儲文件分析工具。
joX28資訊網——每日最新資訊28at.com
使用格式:joX28資訊網——每日最新資訊28at.com
jhat <file>
分析上面生成的文件joX28資訊網——每日最新資訊28at.com
示例:joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
這里生成了一個端口為7000的服務,直接訪問joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
6. jstack
用于生成當前進程中當前時刻線程的快照。joX28資訊網——每日最新資訊28at.com
使用格式:joX28資訊網——每日最新資訊28at.com
jstack [option] <pid>
參數:joX28資訊網——每日最新資訊28at.com
-F:當正常輸出的請求不被響應時,強制輸出線程堆棧。joX28資訊網——每日最新資訊28at.com
-l:除了顯示堆棧信息,還顯示關于鎖的相關信息。joX28資訊網——每日最新資訊28at.com
-m:如果調用的是本地方法,可以顯示C/C++的堆棧。joX28資訊網——每日最新資訊28at.com
示例:joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
圖片joX28資訊網——每日最新資訊28at.com
完畢!!!joX28資訊網——每日最新資訊28at.com
本文鏈接:http://www.tebozhan.com/showinfo-26-12736-0.html【JVM問題排查】JDK命令行工具詳解,這四個工具你都會用嗎?
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 喝了100杯醬香拿鐵,我開竅了
下一篇: 困在分支迷宮?Git分支管理大對決 Git Flow vs GitHub Flow