點擊上方“IT那活兒”公眾號,關注后了解更多內容,不管IT什么活兒,干就完了!!!
JDK是一個功能非常強大的Java開發套裝,不僅給我們提供了Java運行環境,還給開發人員提供了許多有用的開發組件(位于bin目錄中,如下圖所示),對于我們運維人員來說,在我們出現一些內存,GC,線程等問題,JVM分析工具能夠很好的幫助我們定位分析問題,我們可以利用jdk自帶的jvm分析工具進行分析,比如jps,jinfo,jvisualvm,jconsole,jstat,jstack,jcmd,jmap等。當然也可以采用很多優秀的開源jvm分析工具進行分析,Arthas等。
工具 | 類型 | 作用 |
jps | 命令行 | jvm進程狀態工具,列出系統上jvm進程的pid |
jinfo | 命令行 | jvm信息查看工具,查看jvm的各種配置信息 |
jvisualvm | 圖形界面 | jvm綜合監控工具,查看jvm基本信息,堆,棧,轉儲,內存,cpu以及gc等信息 |
jconsole | 圖形界面 | jmx兼容的圖形工具,用于監控jvm基本情況,查看MBean |
jstat | 命令行 | jvm統計監控工具,附件到一個jvm進程上手機和記錄jvm的各種性能指標數據 |
jstack | 命令行 | jvm棧查看工具,可以查看jvm進程的線程和鎖信息 |
jcmd | 命令行 | jvm命令行調試工具,用于向jvm進程發送調試命令 |
jmap | 命令行 | jvm堆內存分析工具,可以查看jvm進程對象直方圖,類加載統計以及做堆轉儲操作 |
1. jps
通過jps查看Java進程列表pid。如圖所示能看到ASMain的pid為2977。
2. Jinfo
通過Java進程對應的pid,使用jinfo查看jvm各種配置信息。比如jdk版本,環境,路徑,虛擬機名稱,編碼,堆棧等信息。
3. jvisualvm
jvisualvm是一個綜合監控工具,查看jvm基本信息,堆,棧,轉儲,內存,cpu以及gc等信息。
概述:可以看到堆棧信息以及系統參數等。
監視:CPU(使用情況,垃圾回收情況),內存(堆大小,堆使用大小),類(類裝入卸載數量),線程(活動線程,守護線程數量)。
線程:當前所有線程執行狀態,主要包括開啟了那些線程,線程運行,休眠,等待,駐留,監視等信息。
抽樣器:CPU抽樣(CPU樣例與線程CPU時間)與內存抽樣(堆柱狀圖與每個線程分配)。,
Profiler:CPU與內存性能分析。
4. jstat
jstat工具以命令行的方式,允許以固定的監控頻次輸出 JVM 的各種監控指標,比如使用 -gcutil 輸出 GC 和內存占用匯總信息,每隔 5 秒輸出一次,輸出 100 次.
5. jstack
通過命令行工具 jstack,也可以實現抓取線程棧的操作,進行在線分析,一般情況我們會連續抓取三次,每隔五秒。
6. jmap
jmap jvm自帶命令行工具,可用于了解系統運行時的對象分布。
jmap pid 查看基本信息。
查看堆信息,jmap -heap pid。
jmap -histo pid 查看一些class的使用情況。
jmap -histo:live pid >dump.txt 輸出class信息到dump文件。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129201.html
簡介 毫無疑問,Java 8是Java自Java 5(發布于2004年)之后的最重要的版本。這個版本包含語言、編譯器、庫、工具和JVM等方面的十多個新特性。在本文中我們將學習這些新特性,并用實際的例子說明在什么場景下適合使用。 這個教程包含Java開發者經常面對的幾類問題: 語言編譯器庫工具運行時(JVM)新的Java工具 Java 8提供了一些新的命令行工具,這部分會講解一些對開發者最有用的工具...
摘要:哪吒社區技能樹打卡打卡貼函數式接口簡介領域優質創作者哪吒公眾號作者架構師奮斗者掃描主頁左側二維碼,加入群聊,一起學習一起進步歡迎點贊收藏留言前情提要無意間聽到領導們的談話,現在公司的現狀是碼農太多,但能獨立帶隊的人太少,簡而言之,不缺干 ? 哪吒社區Java技能樹打卡?【打卡貼 day2...
摘要:在架構中,堆內存和垃圾回收器這兩個部分和垃圾回收相關。堆內存在的內存模型中,最重要的是要了解堆內存的概念。在垃圾回收的過程中,這些對象將被從堆內存中清除,同時它們的空間也就被回收了。 本文非原創,翻譯自Java Garbage Collection introduction在Java中為對象分配和釋放內存空間都是由垃圾回收線程自動執行完成的。和C語言不一樣的是Java程序員不需要手動寫...
摘要:學編程真的不是一件容易的事不管你多喜歡或是多會編程,在學習和解決問題上總會碰到障礙。熟練掌握核心內容,特別是和多線程初步具備面向對象設計和編程的能力掌握基本的優化策略。 學Java編程真的不是一件容易的事,不管你多喜歡或是多會Java編程,在學習和解決問題上總會碰到障礙。工作的時間越久就越能明白這個道理。不過這倒是一個讓人進步的機會,因為你要一直不斷的學習才能很好的解決你面前的難題...
閱讀 1346·2023-01-11 13:20
閱讀 1684·2023-01-11 13:20
閱讀 1132·2023-01-11 13:20
閱讀 1858·2023-01-11 13:20
閱讀 4100·2023-01-11 13:20
閱讀 2704·2023-01-11 13:20
閱讀 1385·2023-01-11 13:20
閱讀 3597·2023-01-11 13:20