日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jvm性能监测工具

發布時間:2024/4/13 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jvm性能监测工具 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
JVM優化一共有兩個方面1. 了解JVM的小工具

我講的JVM工具都不是第三方的,是JAVA Development Kit自帶的工具,是bin目錄下的好多東西,bin目錄大部分都是可執行文件,其實對于這些可執行文件,比如javac.exe編譯器我們用過,還有java.exe,java.exe是我們的虛擬機,javadoc.exe根據你的注釋生成API位文檔,native2ascii.exe做unicode編碼轉換的.我們今天先來講一下jps.exe,這是JDK自帶的一個對JVM性能檢測,JVM輔助的小工具,JPS是最簡單可用的小工具,有點類似于linux中的ps命令,還記得ps命令嗎,ps就是process show,jsp就是干這種事的.比如在命令行敲 jps -l,記得這個命令要在bin目錄敲,也就是先切換到bin目錄

也可以輸入:jps -v

看到的信息都不太一樣,jps -l 是虛擬機的線程和線程ID,jps -v是顯示虛擬機的ID以外還顯示它的一些配置信息,JPS是僅對虛擬機的線程,比如現在我要啟動一個虛擬機,比如TOMCAT,我們先啟動一個TOMCAT

我們這個時候再看一下 jps -l命令會看到多了一個8012的線程,就是我們tomcat的線程,所以jps就是查虛擬機里面的線程的,拿到這些線程的ID我們能干嘛呢, jstat 是用來查看HotSpot VM運行信息,包含了類加載,內存,GC[可分代查看],JIT編譯命令格式:jstat -gc 10340 250 20,這個命令到底要做什么事,取決于命令所給定的參數,它的參數有好多,感興趣的可以自己上網查一下,我并沒有把所有的參數都羅列出來,我只羅列了一個-gc,查看GC的信息,我要用jstat去查看HotSpot的GC的信息,它的命令格式是怎么樣的呢,命令jstat+gc+pid10340+250(多少毫秒里)+20(輸出多少次),這個小工具要依賴jps,現在我們看一下我們已經啟動的tomcat的pid是8012,那么我們就可以執行命令: jstat -gc 8012 250 20

S0C 就是Survivor中的s0的空間,20736字節,不是KB,1KB是1024個字節,其實對于s0和s1來講空間不會太大.S1C是s1的空間,這里的S1C是23552,所以其實s0和s1其實并不是相等的,其實20736也并不一定是百分百準確的一個數,這里只是一個大概數據的一個輸出,這里S0C的C是Create創建的意思,S0C是S0創建的大小.S0U是指S0被use了多了就是被用了多少,也就是在20736里面用了15641個字節,然后S1U0就是就是s1用了0,就是沒有可回收了,也可能是放在老年代里去了,EC就是Eden Create,Eden明顯比s0和s1要大,這里的Eden大小是136192快1M了,EU是Eden已經用了的,OC是 old create 老年代的大小, OU old used 老年代用了多少,PC是 Permanent Create 是持久代創建的, PU 是 Permanent Use 持久代所用掉空間的大小.YGC 是 young garbage collection 是次收集器的大小, YGCT 是 young garbage collection time是次收集器的次數,年輕代就是次收集器, YGCT是所花費的時間,這里是用了多少秒, FGC 是 Full Garbage Collection 回收了1次, FGCT是 Full Garbage Collection Time, GCT是 Garbage Time 是次收集器和全收集器所耗費的總時間,這里是通過JSTAT這個小工具來看當前虛擬機對于GC信息的輸出.我們接下來要介紹JVisualVM,這是一個非常強大的工具,他把上面這些個工具,我們上面用了一個JSTAT,jstat的信息全部是在控制臺輸出的,jvisionvm他是做了一個圖形化界面,基于圖形化界面來展示JVM的信息

主機運行在localhost,主類org.apache.catalina.startup.Bootstrap啟動類,然后參數start,TOMCAT的啟動有幾種方式,一種start雙擊啟動,還有一種是catalina start,其實我們雙擊start最終也會走catalina也就是說你的TOMCAT要啟動必須給一個參數叫start, start才能啟動,Bootstrap就是完成TOMCAT啟動的主類并且給主類傳了一個參數叫start,它會把這個信息給你展示出來,然后介紹JVM什么版本的,然后供應商是誰,然后JRE的目錄,然后JVM運行時的哪些參數,JVM在運行的時候我們可以給定一些參數,設置堆區大小,指定垃圾回收器,對于啟動有兩種情況,第一種方式我們自己去run虛擬機,還有一種依賴于其他程序來啟動虛擬機,TOMCAT就是這樣的,在TOMCAT的配置文件當中,就會去找虛擬機把它啟動起來,同時給操作系統配置一些啟動項,他這里所顯示的JVM參數,如果自己啟動run的是顯示具體的值,給不是給一些目錄去讀取,而TOMCAT是去讀TOMCAT的一些參數配置這里我們還可以監視CPU和堆內存的使用

代碼不嚴謹導致內存溢出,程序運行一段時間死掉了,看堆里的曲線圖,正常的曲線是上下上下有占用就有釋放,我們現在啟動了TOMCAT,我們啟動了但是什么都沒有做,所以現在圖片里的堆曲線是比較平穩的,我們現在訪問一下堆里面就會有變,加入我們現在請求了一個JSP,做了編譯動作,堆曲線圖就會有變化,往上走說明是開空間了,往下走就是放空間了,所以最終這個圖是曲線結構的,所以我們可以通過這個監測虛擬機堆的開辟和釋放的情況,然后我們可以看到線程

在多線程項目下,我們可以看到哪些線程占用空間比較大,哪些線程有什么問題,也是可以監控到的,我們現在先不考慮他了,因為這也是一個很復雜的事,因為你要去分析線程,然后還有一個抽樣器

抽樣器可以看CPU運行的情況,看內存運行的情況,比如什么內存占用的比較多,每個類對內存的占用是多少,就是一個更詳細的展示了 這些都不是最重要的,但是這里要介紹一個插件,Visual VM是這樣的,覺得你默認的工具不能滿足你的時候,允許你去擴展你的插件,所以今天要教你一個插件,這個插件叫Visual GC,專門監控垃圾回收的一個插件

在菜單欄里有一個工具,在插件里面有可用插件,已下載,已安裝插件,

現在我們從來沒有安裝過插件,所以我們要裝新的插件,可以在可用插件里檢查新版本,但是這里又個問題,看設置這里,設置這里有個URL,它就會從這個URL里查找插件,接著我們點擊檢查更新版本

他會彈一個框,也就是連不上,這是什么原因引起的呢,現在這個URL為net的域名的網站已經被關閉了,也就是說現在這個URL已經不可用的了,原來的插件已經移植到哪里去了呢,已經移植到了Github上了,所以你可以去修改GitHub的地址,那地址是什么呢

把這個地址放在這里,有的時候你也連不上,但是你用瀏覽器你是可以打開的,你可以訪問GitHub的首頁去下載

這里所有的工具其實也是非常小,10幾KB,大一點的100多KB,那這么小的文件就能做出這么大的應用嗎,答案不是的,這里所有的.exe,其實這里只是存放了一些運行工具的起始命令,比如我們所有的測試工具,性能檢測工具,比如jps.exe只是存放了啟動jps代碼的一個啟動項,但是真正的代碼在tools.jar文件下,我們有一個jar包,有一個tools.jar,哪些工具的執行代碼全都在這里呢,最后其實還是執行我們寫好的JDK里的代碼,如果在線安裝不上就利用我們下載好的文件

在已下載下添加插件,去找已下好的文件,要選中nbm的文件

導進來之后點擊安裝

裝完以后必須要重啟這個工具,重啟之后才能用這個插件,TOMCAT沒關,但是TOMCAT控制臺會提示連接我的工具已經斷開了,Ctrl+c關閉進程,如果直接關閉命令窗口只是把窗口關了,然后載入進來右邊就多了一個東西

然后打開Visual GC

除了圖形以外,還有編譯時間compile time, tomcat每次工作所耗的時間,下面還有class loader time每次載入所用時間,通過它你可以看到這樣的一個過程,我們可以通過它的一些監控,可以進行一些小的優化,比如你想要提升TOMCAT的編譯環境,你可以加一些參數,你想擴大空間,你也可以加一些參數,在啟動JVM的時候,加一些參數來完成,一會我們會利用這個小工具來做一些案例,去嘗試的優化一下我們的Eclipse,這個工具還挺有用的,除此之外它還有哪些能力呢,可以看線程的Dump文件,可以看堆的線程文件

顯示線程的信息,這里=是線程棧的信息,其實我們出異常也是棧的信息,只是所輸出描述的信息是不一樣的,然后他還可以拍快照保持某一節點的配置信息,首先得生成快照

?

總結

以上是生活随笔為你收集整理的jvm性能监测工具的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。