jvm調優工具
jps是JVM的一個經常使用命令,相似linux中的ps命令。jps是查看java進程信息的命令;ps是查看linux系統中進程的命令
格式
jps [ options ] [ hostid ]
參數說明
options
-q 只輸出java進程的進程id
-l 輸出java進程的進程id和main方法的類全名
-m 輸出java進程的進程id和main方法的入參
-v 輸出java進程的進程id和jvm的入參
-V 輸出java進程的進程id和經過flag文件傳入jvm的參數
hostid
命令對應的服務器ip,默認不加參數,代碼查看本機
jps
查看全部的jvm進程,包括進程ID,進程啓動的路徑等等。
我本身也用PS,即:ps -ef | grep java
jstack
觀察jvm中當前全部線程的運行狀況和線程當前狀態。
系統崩潰了?若是java程序崩潰生成core文件,jstack工具能夠用來得到core文件的java stack和native stack的信息,從而能夠輕鬆地知道java程序是如何崩潰和在程序何處發生問題。
系統hung住了?jstack工具還能夠附屬到正在運行的java程序中,看到當時運行的java程序的java stack和native stack的信息, 若是如今運行的java程序呈現hung的狀態,jstack是很是有用的。
jstat
jstat利用JVM內建的指令對Java應用程序的資源和性能進行實時的命令行的監控,包括了對進程的classloader,compiler,gc狀況;
特別的,一個極強的監視內存的工具,能夠用來監視VM內存內的各類堆和非堆的大小及其內存使用量,以及加載類的數量。
jmap
監視進程運行中的jvm物理內存的佔用狀況,該進程內存內,全部對象的狀況,例如產生了哪些對象,對象數量;
系統崩潰了?jmap 能夠從core文件或進程中得到內存的具體匹配狀況,包括Heap size, Perm size等等
jinfo
觀察進程運行環境參數,包括Java System屬性和JVM命令行參數
系統崩潰了?jinfo能夠從core文件裏面知道崩潰的Java應用程序的配置信息。
備註
若是能熟練運用這些命令,尤爲是在linux下,那麼徹底能夠代替jprofile等監控工具。
用命令的好處就是速度快,而且輔助於其餘命令,好比grep gawk sed等,能夠組裝多種符合本身需求的工具。java
更多免費技術資料可關注:annalin1203linux