1. 程式人生 > >JVM效能調優監控工具jps、jstack、jstat、jmap、jinfo使用詳解

JVM效能調優監控工具jps、jstack、jstat、jmap、jinfo使用詳解

jcmd命令:主要提供JVM的一些基本資訊查詢(檢視程序執行時間、檢視虛擬機器版本資訊、顯示調優標誌)

jinfo命令:檢視程序ID號。檢視JVM的配置引數。

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應用程式的配置資訊。

垃圾回收用什麼檢視(eclipse 加引數、 jstatjmap+MAT

SpringMVC 初始化完成的方法/標誌/事件:實現ApplicationListener介面,使用@PostConstruct註解,方法實現InitializingBean或者ServletContextAware