jvm學習-JDK工具

java.exe  javac.exe是咱們熟悉的命令,這個目錄下面還有其餘不少命令,有時候咱們程序部署在服務器上就只能藉助這些命令來定位咱們程序問題,這些命令一般都很輕巧,由於這些命令的核心功能代碼是在lib/tools.jar中實現了,看幾個經常使用的工具:java

命令行工具:

jps服務器

功能:虛擬機進程情況工具主要用來查詢虛擬機進程信息jvm

命令: jps [options] [hostid]函數

參數: -m 輸出main函數參數,-v輸出啓動時jvm參數,-l輸出主類全名工具

例子:輸出當前機器上java進程的id和主類名:jps -lspa

jinfo命令行

功能:java配置信息工具查看虛擬機參數,也能夠動態修改虛擬機參數線程

命令:jinfo [option] pidcode

參數:-flag name 顯示參數,-flag [+|-] name 啓用或禁用參數,-flag name=value給指定參數設定值,-flags打印jvm命令行參數,-sysprops打印java系統屬性orm

例子:在系統運行期打印垃圾回收信息:

        jinfo -flag +PrintGC 23890
        jinfo -flag +PrintGCDetails 23890

jstat

功能:虛擬機統計信息監控收集虛擬機進程運行數據

命令:jstat [option vmid [interval[s|ms] [count]]],interval 表明間隔,count表明統計次數

參數:

class 類加載器的行爲統計
compiler HotSpot即時編譯器的行爲統計
gc 堆的垃圾回收器的行爲統計
gccapacity Java各代區域以及對應空間的容量統計
gccause 垃圾回收的摘要信息(等同於-gcutil), 以及最後的和當前的(如適用)垃圾回收事件的緣由。
gcnew new generation的行爲統計
gcnewcapacity new generation及其對應空間的大小統計。
gcold old和permanent generation的行爲統計。
gcoldcapacity old generation的大小統計。
gcpermcapacity permanent generation的大小統計。
gcutil 垃圾回收統計的摘要信息。
printcompilation HotSpot彙編方法統計。

例子:查看進程id爲23812的垃圾回收摘要信息:jstat -gcutil 23812 1000 

jmap

功能:內存映像工具,查看內存快照

命令:jmap [option] vmid

參數:-heap 顯示堆詳細信息,如使用哪一種回收器、參數配置、分代內存情況,  -histo 統計對象信息, -dump:[live,]format=b,file=<filename>轉存爲快照

例子:查看進程id爲23812 的內存分配狀況,jmap -heap 23812

jstack

功能:堆棧跟蹤工具,主要查詢線程快照,經常使用於線程掛住、死鎖分析 ,結合top -Hp pid命令能夠找出cpu佔用最多的線程

命令:jstack [option] vmid

參數:-l 顯示鎖的附加信息

可視化工具:

Jconsole.exe:把上面命令行信息圖形化展現出來,主要包含四個部分,堆、線程、類、cpu
Jvisualvm.exe:Jconsole的升級版,把更多命令行工具整合了進來

遠程監控
1. Jmx:
setenv.sh
-Djava.rmi.server.hostname=192.168.1.110
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8081
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false'

2.jstatd.exe 創建jstatd.all.policy文件,內容: grant codebase "file:/usr/java/jdk1.8.0_45/lib/tools.jar" {    permission java.security.AllPermission; }; jstatd -J-Djava.security.policy=jstatd.all.policy

相關文章
相關標籤/搜索