1. 程式人生 > >jvm記憶體調優工具

jvm記憶體調優工具

jvm記憶體調優工具

1、jps

全名:Java Virtual Machine Process Status Tool
與linux系統裡的ps命令相似,能夠輸出正在執行的虛擬機器程序並顯示id號
用法:
jps [option][hostid] option命令選項,用來控制輸出格式 hostid指特定主機,可以指IP地址、域名、協議、埠等,預設為本機
jps -q 只輸出jvmid(即唯一id號)
jps -m 輸出jvm啟動時傳遞給主類的方法
jps -l 輸出主類全名,如果就jar則輸出jar路徑
jps -v 輸出jvm啟動引數

注意:遠端執行命令時要開啟機器上的jstatd服務,開啟需要許可權(方法看參考文獻 jvm效能調優工具之jps)

2、jstat

輸出jvm的各種狀態資訊,如裝載的類及記憶體使用量、堆記憶體統計、垃圾回收情況等。
用法: jstat [-命令選項][jvmid][間隔時間/毫秒][查詢次數]

jstat -class 輸出類載入的class數量以及空間資訊
jstat -compiler 輸出編譯成功和失敗的具體資訊
jstat -gc 輸出gc資訊包括各個分割槽的使用情況
jstat -gccapacity 輸出堆記憶體統計資訊

3、jinfo

輸出jvm各項引數資訊,包括預設引數
Jinfo [option] pid

4、jmap

輸出程序中所有物件的資訊
用法:jmap [option] pid
jmap [option] executable core 輸出core dump檔案
jmap [option][[email protected]] remote-hostname-or-IP 遠端執行命令 (server-id唯一id,假如一臺主機上多個遠端debug服務,用此選項引數標識伺服器)
引數
-dump:[live,]format=b,file={fileName} 生成對應的dump資訊檔案
-heap 輸出堆的詳細資訊、垃圾回收器資訊、引數配置以及分代情況
-histo 輸出class的記憶體情況(例項數、大小、名字)
-histo:live,format=b,file=a.log pid 輸出記憶體資訊dump到a.log檔案中
\jmap -histo pid | less 輸出物件序號,例項數,所佔記憶體大小,class name等資訊

5、jstack

輸出當前時刻的執行緒快照,稱為threaddump檔案。
jvm每個執行緒堆疊資訊的集合,可以用來追蹤執行緒狀態(執行、阻塞、等待、未啟動)
用法:jstack [option] pid
注意:windows環境只能使用-l命令
具體怎麼使用這個工具除錯見另一篇文章待補充

參考文獻

JVM難學?那是因為你沒認真看完這篇文章

JAVA JPS 命令詳解
jvm 效能調優工具之 jps
jstat命令使用