1.jps(JVM Process Status Tool):
可以列出正在運(yùn)行的虛擬機(jī)進(jìn)程芬首,并顯示虛擬機(jī)執(zhí)行主類(Main Class ,main()所在的類)名稱以及這些進(jìn)程的本地虛擬機(jī)唯一ID(LVMID).
因?yàn)閖sp命令可以獲取到LVMID命满,所以平時(shí)也經(jīng)常會(huì)用到原杂,因?yàn)榇蠖鄶?shù)命令會(huì)需要這個(gè)LVMID戒祠。
jps命令格式
jps [options] [hostid]
jps工具主要選項(xiàng)
2.jstat(JVM Statistics Monitoring Tool)
是用來(lái)監(jiān)視虛擬機(jī)各種運(yùn)行狀態(tài)信息的命令行工具瓢对。它可以顯示本地或者遠(yuǎn)程虛擬機(jī)進(jìn)程中的類裝載靠胜,內(nèi)存萌衬,垃圾收集饮醇,JIT編譯等運(yùn)行數(shù)據(jù),在沒(méi)有GUI圖形工具秕豫,只提供了純文本控制臺(tái)環(huán)境的服務(wù)器上朴艰,他僵尸運(yùn)行期定位虛擬機(jī)性能問(wèn)題的首選工具。
命令格式
jstat [ option vmid [interval [s|ms] [count] ] ]
interval 和 count代表查詢間隔時(shí)間和次數(shù)
option代表這用戶需要查詢的信息混移,主要分3類:類裝載祠墅,垃圾收集,運(yùn)行期編譯狀態(tài)歌径。
查看GC
S0C:第一個(gè)survivor的大小
S1C:第二個(gè)survivor的大小
S0U:第一個(gè)survivor的使用大小
S1U:第二個(gè)survivor的使用大小
EC:eden區(qū)的大小
EU:eden區(qū)的使用大小
OC:老年代大小
OU:老年代使用大小
MC:方法區(qū)大小
MU:方法區(qū)使用大小
CCSC:壓縮類空間大小
CCSU:壓縮類空間使用大小
YGC:年輕代垃圾回收次數(shù)
YGCT:年輕代垃圾回收消耗時(shí)間
FGC:老年代垃圾回收次數(shù)
FGCT:老年代垃圾回收消耗時(shí)間
GCT:垃圾回收消耗總時(shí)間
Loaded:加載class的數(shù)量
Bytes:所占用空間大小
Unloaded:未加載數(shù)量
Bytes:未加載占用空間
Time:時(shí)間
Compiled:編譯數(shù)量毁嗦。
Failed:失敗數(shù)量
Invalid:不可用數(shù)量
Time:時(shí)間
FailedType:失敗類型
FailedMethod:失敗的方法
3.jinfo:java配置信息工具
jinfo的作用是實(shí)時(shí)的查看和調(diào)整虛擬機(jī)各項(xiàng)參數(shù)
命令格式
jinfo [option] pid
jinfo -flags 3337
查看正在運(yùn)行的Java程序的擴(kuò)展參數(shù)信息
jinfo -sysprops 3337
---------------------------------------------------------------------------------------------------------------4.jmap java 內(nèi)存映像工具
jmap命令用于生成堆轉(zhuǎn)存儲(chǔ)快照(dump 文件),還可以查看finalize執(zhí)行隊(duì)列,Java堆和永久代詳細(xì)信息,如空間使用率,當(dāng)前用的哪種收集器等
命令格式
jmap [option] vmid
5.jhat:虛擬機(jī)堆轉(zhuǎn)儲(chǔ)快照分析工具
jhat命令與jmap搭配使用,來(lái)分析jmap生成的堆轉(zhuǎn)存儲(chǔ)快照.jhat內(nèi)置一個(gè)微型的HTTP/HTML服務(wù)器,生成dump文件的分析結(jié)果后,可以再瀏覽器中查看
6.jstack:Java堆棧跟蹤工具
jstack命令用于生成虛擬機(jī)當(dāng)前時(shí)刻的線程快照(threaddump或者javacore文件).
線程快照就是當(dāng)前虛擬機(jī)內(nèi)每一條線程正在執(zhí)行的方法堆棧的集合,生成線程快照的主要目的是定位線程出現(xiàn)長(zhǎng)時(shí)間停頓的原因.
命令格式
jstack [option] vmid
JVM可視化監(jiān)視
1、JConsole --jdk1.5即提供
Java監(jiān)控與管理控制臺(tái)回铛,windows下雙擊jdk安裝目錄bin下的jconsole.exe啟動(dòng)狗准,可以監(jiān)控本地java虛擬機(jī),也可監(jiān)控遠(yuǎn)程java虛擬機(jī)勺届;
概要是總體信息
內(nèi)存標(biāo)簽頁(yè)相當(dāng)于jstat命令
線程標(biāo)簽頁(yè)相當(dāng)于jstack命令
注:使用圖形化工具驶俊,要開(kāi)啟JMX
2、VisualVM --jdk1.6 u7才提供免姿,但也可以監(jiān)控jdk1.4.2這樣老版本的java虛擬機(jī);
可能是最好的java虛擬機(jī)監(jiān)控工具榕酒,其功能比收費(fèi)工具JProfiler也不遜色多少胚膊;
在jdk安裝目標(biāo)bin下雙擊jvisualvm.exe啟動(dòng)VisualVM;
VisualVM基于NetBeans開(kāi)發(fā)想鹰,可以支持安裝多種插件紊婉,在菜單的工具-->插件一欄可以選擇安裝自己需要的插件;
注意:
JDK1.5及之前的版本要開(kāi)啟JMX功能辑舷,需在程序啟動(dòng)前加上參數(shù)-Dcom.sun.management.jmxremote喻犁,JDK的一些可視化工具需要開(kāi)啟JMX功能才能使用,JDK1.5之后的版本默認(rèn)是開(kāi)啟了JMX的何缓,無(wú)需加該參數(shù)肢础;
- JVM內(nèi)存溢出分析
Memory Analysis(dump文件) mat
下載:https://www.eclipse.org/mat/
可以通過(guò)一下命令,生成堆轉(zhuǎn)存快照
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=e:/export/heapdump.hprof
也可以通過(guò)jmap
jmap -dump:format=b,file=d:/logs/heapdump2.hprof pid
format=b 表示格式為二進(jìn)制