虛擬機器效能監控和故障處理工具
* 如果監控執行與jdk1.5的虛擬上的程式,程式啟動時候請新增引數"-Dcom.sun.management.jmxremote"開啟JMX管理功能,由於部分工具基於JMX的,但是如果環境在JDK1.6之上,那JMX是預設開啟的
名稱 | 主要作用 |
jps | JVM Process Status Tool,顯示指定系統內的所有HotSpot虛擬機器程式 |
jstat | JVM Statistics Monitoring Tool,用於收集HotSpot虛擬機器各方面的執行資料 |
jinfo | Configuration Info for Java,顯示虛擬機器配置資訊 |
jmap | Memory Map for Java,生成虛擬機器的記憶體轉儲快照(heapdump)檔案 |
jhat | JVM Heap Dump Browser,用於分析heapdump檔案,它會建立一個HTTP/HTML伺服器,讓使用者可以在瀏覽器上檢視分析結果 |
jstack | Stack Trace for Java ,顯示虛擬機器的執行緒快照資訊 |
jps:虛擬機器程式狀況工具
jps命令格式: jps [options] [hostid]
hostid: jps可以通過RMI協議查詢開啟了RMI服務的遠端虛擬機器程式狀態。 hostid是RMI登錄檔中註冊的主機名
,在本地上呼叫可以省略
選項 | 作用 |
-q | 只輸出LVMID,省略主類的名稱 |
-m | 輸出虛擬機器程式啟動時傳遞給主類main()函式的引數 |
-l | 輸出主類的全名,如果程式執行的是Jar包,輸出Jar路徑 |
-v | 輸出虛擬機器程式啟動時JVM引數 |
功能:主要查詢正在執行的虛擬機器程式,並顯示虛擬機器執行主類名稱和這些程式的本地虛擬機器唯一ID(LVMID)
jstat:虛擬機器統計資訊監視工具(顯示本地或遠端類裝載、垃圾收集、記憶體、編譯情況)
命令格式:jstat [option vmid [interval[s|ms] [count]] ]
對於命令格式中的VMID與LVMID需要特別說明一下:如果本地虛擬機器程式,VMID和LVMID是一致的,如果是遠端虛擬機器程式,那麼VMID的格式:
[protocol:][//]lvmid[@hostname[:port]/servername]
引數interval 和 count 表示查詢間隔和次數,如果省略這兩個引數,說明只查詢一次
option 表示使用者查詢的資訊,主要是3類:類裝載、垃圾收集、執行期編譯情況
示例: jstat -gc 2764 250 20
表示需要每250ms查詢一次程式2764的垃圾收集情況,查詢20次
jstat -gc 內容解讀:
S0C、S1C、S0U、S1U:Survivor 0/1區容量(Capacity)和使用量(Used)
EC、EU:Eden區容量和使用量
OC、OU:年老代容量和使用量
PC、PU:永久代容量和使用量
YGC、YGT:年輕代GC次數和GC耗時
FGC、FGCT:Full GC次數和Full GC耗時
GCT:GC總耗時
Jinfo:Java配置資訊工具
jinfo查詢虛擬機器各項引數配置
命令格式:
jinfo [options] pid
-v: 查詢虛擬機器啟動時候顯式指定的引數列表
-flag: 查詢未被顯式指定的引數的系統預設值
-sysprops:將虛擬機器程式的System.getProperties()的內容列印
並且,在jdk1.6之後,jinfo在window和Linux平臺上都有提供,並加入了執行期引數可以改的能力
-flag [+|-] name 或者 -flag name = value修改一部分執行期可用的虛擬機器引數
jmap: Java記憶體影響工具
jmap命令用於生成對轉儲快照(一般稱為heapdump或dump檔案)。
如果不適用jmap命令,要想獲取到Java堆轉儲快照,還有些方法:
比如設定虛擬機器引數-XX:+HeapDumpOnOutOfMemoryError引數,通過-XX:HeapDumpOnCtrlBreak引數可以使用[Ctrl]+[Break]鍵來讓虛擬機器生成dump檔案,或者在linux系統下通過kill -3 命令,獲取到dump命令
jmap的作用不僅僅是為了獲取到dump檔案,它還可以查詢finalize執行佇列、java堆和永久代的詳細資訊,如空間使用率、使用的是那種垃圾收集器
命令格式:
jmap [option] vmid
示例:先jps獲取到vmid,在使用jmap獲取到dump檔案
jhat: 虛擬機器堆轉儲快照分析工具
和jmap搭配使用分析dump檔案,一般不會直接使用jhat命令分析,第一點,本機上分析耗費資源,第二點,相對於VisualVM等dump檔案分析工具而言比較簡陋
命令格式: jhat dump檔名
jhat內建了一個微型的HTTP/HTML伺服器,螢幕顯示 "Server is ready.",使用者在瀏覽器鍵入http://localhost:7000可以直接檢視
結果預設已包為單位進行顯示,並且分析到記憶體洩露問題會使用到 Show heap histogram 查詢
jstack:Java堆疊跟蹤工具
用於生成虛擬機器當前時刻的執行緒快照(也稱為threaddump或Javacore檔案)。執行緒快照就是當前虛擬機器每一條執行緒正在執行的方法堆疊集合。主要是定位執行緒停頓的原因,如死鎖,死迴圈等。
命令格式: jstack [option] vmid ,vmid是jps命令查詢到的lvmid
另外,java.lang.Thread類新增了一個getAllStackTraces(),可以獲取到執行緒的StackTraceElement物件,完成jstack的大部分功能
HSDIS:JIT生成程式碼反編譯
讓HotSpot的 -XX:+PrintAssembly指令呼叫它動態生成原生程式碼還原為彙編程式碼輸出
jdk的視覺化工具
1. jconsole:java監視和管理控制檯,集合了jps,jstat,jinfo,jstack 的功能
2. visualvm:多合一個故障處理工具
相關文章
- 深入理解虛擬機器之虛擬機器效能監控和故障處理工具虛擬機
- JVM(4)-虛擬機器效能監控與故障處理工具JVM虛擬機
- 深入理解JVM(③)虛擬機器效能監控、故障處理工具JVM虛擬機
- 深入理解Java虛擬機器之效能監控與故障處理工具Java虛擬機
- 虛擬機器故障與故障處理工具之指令篇虛擬機
- win10虛擬機器監控程式怎麼用_win10vmware虛擬機器監控程式使用教程Win10虛擬機
- java虛擬機器和Dalvik虛擬機器Java虛擬機
- ios 手機app效能監控工具iOSAPP
- 虛擬機器vm開機黑屏處理,簡單解決虛擬機
- Linux 效能監控工具Linux
- KVM虛擬機器處於暫停狀態怎麼處理虛擬機
- Zabbix監控虛擬機器服務-告警與自動恢復虛擬機
- ovftool匯出虛擬機器報錯處理過程!虛擬機
- VMware 虛擬機器一鍵去虛擬化工具虛擬機
- visualvm工具遠端對linux伺服器上的JVM虛擬機器進行監控與調優LVMLinux伺服器JVM虛擬機
- Dalvik虛擬機器、Java虛擬機器與ART虛擬機器虛擬機Java
- CrossOver for Mac(Windows虛擬機器工具)ROSMacWindows虛擬機
- VMware虛擬機器如何設定使主機和虛擬機器不同IP虛擬機
- Android 虛擬機器 Vs Java 虛擬機器Android虛擬機Java
- Centos效能監控工具——netdata配置CentOS
- Java 虛擬機器之六:javap工具Java虛擬機
- VM和Container 虛擬機器和容器AI虛擬機
- 效率工具 | 快速建立虛擬機器,Vagrant真香!虛擬機
- Flutter效能監控工具(3)--- Observatory使用Flutter
- 虛擬化技術之kvm虛擬機器建立工具virt-install虛擬機
- 虛擬化技術之kvm虛擬機器建立工具qemu-kvm虛擬機
- 虛擬機器(三)虛擬機器配置靜態Ip虛擬機
- 虛擬網路監控進階之路-DeepFlow
- JVM學習筆記---伺服器,JVM效能監控工具JVM筆記伺服器
- 使用DiskGenius工具來實現物理機遷移虛擬機器,實現虛擬化虛擬機
- Docker容器和虛擬機器區別Docker虛擬機
- ☕[JVM效能專題](1)效能監控-命令列工具JVM命令列
- PD虛擬機器 18 for Mac(Mac虛擬機器軟體)虛擬機Mac
- 教你win10虛擬機器監控程式未執行的最佳解決方法Win10虛擬機
- VMware Fusion Pro 13 for Mac,VM虛擬機器工具Mac虛擬機
- Vmware fusion 命令列管理虛擬機器便捷工具命令列虛擬機
- 獨立伺服器和vps(虛擬機器)伺服器虛擬機
- 【故障處理】ORA-600:[13013],[5001]故障處理