點(diǎn)擊上方“IT那活兒”公眾號,關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了!?。?/strong>
JDK是一個(gè)功能非常強(qiáng)大的Java開發(fā)套裝,不僅給我們提供了Java運(yùn)行環(huán)境,還給開發(fā)人員提供了許多有用的開發(fā)組件(位于bin目錄中,如下圖所示),對于我們運(yùn)維人員來說,在我們出現(xiàn)一些內(nèi)存,GC,線程等問題,JVM分析工具能夠很好的幫助我們定位分析問題,我們可以利用jdk自帶的jvm分析工具進(jìn)行分析,比如jps,jinfo,jvisualvm,jconsole,jstat,jstack,jcmd,jmap等。當(dāng)然也可以采用很多優(yōu)秀的開源jvm分析工具進(jìn)行分析,Arthas等。
工具 | 類型 | 作用 |
jps | 命令行 | jvm進(jìn)程狀態(tài)工具,列出系統(tǒng)上jvm進(jìn)程的pid |
jinfo | 命令行 | jvm信息查看工具,查看jvm的各種配置信息 |
jvisualvm | 圖形界面 | jvm綜合監(jiān)控工具,查看jvm基本信息,堆,棧,轉(zhuǎn)儲,內(nèi)存,cpu以及gc等信息 |
jconsole | 圖形界面 | jmx兼容的圖形工具,用于監(jiān)控jvm基本情況,查看MBean |
jstat | 命令行 | jvm統(tǒng)計(jì)監(jiān)控工具,附件到一個(gè)jvm進(jìn)程上手機(jī)和記錄jvm的各種性能指標(biāo)數(shù)據(jù) |
jstack | 命令行 | jvm棧查看工具,可以查看jvm進(jìn)程的線程和鎖信息 |
jcmd | 命令行 | jvm命令行調(diào)試工具,用于向jvm進(jìn)程發(fā)送調(diào)試命令 |
jmap | 命令行 | jvm堆內(nèi)存分析工具,可以查看jvm進(jìn)程對象直方圖,類加載統(tǒng)計(jì)以及做堆轉(zhuǎn)儲操作 |
1. jps
通過jps查看Java進(jìn)程列表pid。如圖所示能看到ASMain的pid為2977。
2. Jinfo
通過Java進(jìn)程對應(yīng)的pid,使用jinfo查看jvm各種配置信息。比如jdk版本,環(huán)境,路徑,虛擬機(jī)名稱,編碼,堆棧等信息。
3. jvisualvm
jvisualvm是一個(gè)綜合監(jiān)控工具,查看jvm基本信息,堆,棧,轉(zhuǎn)儲,內(nèi)存,cpu以及gc等信息。
概述:可以看到堆棧信息以及系統(tǒng)參數(shù)等。
監(jiān)視:CPU(使用情況,垃圾回收情況),內(nèi)存(堆大小,堆使用大?。悾愌b入卸載數(shù)量),線程(活動線程,守護(hù)線程數(shù)量)。
線程:當(dāng)前所有線程執(zhí)行狀態(tài),主要包括開啟了那些線程,線程運(yùn)行,休眠,等待,駐留,監(jiān)視等信息。
抽樣器:CPU抽樣(CPU樣例與線程CPU時(shí)間)與內(nèi)存抽樣(堆柱狀圖與每個(gè)線程分配)。,
Profiler:CPU與內(nèi)存性能分析。
4. jstat
jstat工具以命令行的方式,允許以固定的監(jiān)控頻次輸出 JVM 的各種監(jiān)控指標(biāo),比如使用 -gcutil 輸出 GC 和內(nèi)存占用匯總信息,每隔 5 秒輸出一次,輸出 100 次.
5. jstack
通過命令行工具 jstack,也可以實(shí)現(xiàn)抓取線程棧的操作,進(jìn)行在線分析,一般情況我們會連續(xù)抓取三次,每隔五秒。
6. jmap
jmap jvm自帶命令行工具,可用于了解系統(tǒng)運(yùn)行時(shí)的對象分布。
jmap pid 查看基本信息。
查看堆信息,jmap -heap pid。
jmap -histo pid 查看一些class的使用情況。
jmap -histo:live pid >dump.txt 輸出class信息到dump文件。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/129201.html
學(xué)習(xí)JVM的相關(guān)資料 《深入理解Java虛擬機(jī)——JVM高級特性與最佳實(shí)踐(第2版)》 showImg(https://segmentfault.com/img/bVbsqF5?w=200&h=200); 基于最新JDK1.7,圍繞內(nèi)存管理、執(zhí)行子系統(tǒng)、程序編譯與優(yōu)化、高效并發(fā)等核心主題對JVM進(jìn)行全面而深入的分析,深刻揭示JVM的工作原理。以實(shí)踐為導(dǎo)向,通過大量與實(shí)際生產(chǎn)環(huán)境相結(jié)合的案例展示了解...
簡介 毫無疑問,Java 8是Java自Java 5(發(fā)布于2004年)之后的最重要的版本。這個(gè)版本包含語言、編譯器、庫、工具和JVM等方面的十多個(gè)新特性。在本文中我們將學(xué)習(xí)這些新特性,并用實(shí)際的例子說明在什么場景下適合使用。 這個(gè)教程包含Java開發(fā)者經(jīng)常面對的幾類問題: 語言編譯器庫工具運(yùn)行時(shí)(JVM)新的Java工具 Java 8提供了一些新的命令行工具,這部分會講解一些對開發(fā)者最有用的工具...
摘要:哪吒社區(qū)技能樹打卡打卡貼函數(shù)式接口簡介領(lǐng)域優(yōu)質(zhì)創(chuàng)作者哪吒公眾號作者架構(gòu)師奮斗者掃描主頁左側(cè)二維碼,加入群聊,一起學(xué)習(xí)一起進(jìn)步歡迎點(diǎn)贊收藏留言前情提要無意間聽到領(lǐng)導(dǎo)們的談話,現(xiàn)在公司的現(xiàn)狀是碼農(nóng)太多,但能獨(dú)立帶隊(duì)的人太少,簡而言之,不缺干 ? 哪吒社區(qū)Java技能樹打卡?【打卡貼 day2...
摘要:在架構(gòu)中,堆內(nèi)存和垃圾回收器這兩個(gè)部分和垃圾回收相關(guān)。堆內(nèi)存在的內(nèi)存模型中,最重要的是要了解堆內(nèi)存的概念。在垃圾回收的過程中,這些對象將被從堆內(nèi)存中清除,同時(shí)它們的空間也就被回收了。 本文非原創(chuàng),翻譯自Java Garbage Collection introduction在Java中為對象分配和釋放內(nèi)存空間都是由垃圾回收線程自動執(zhí)行完成的。和C語言不一樣的是Java程序員不需要手動寫...
摘要:學(xué)編程真的不是一件容易的事不管你多喜歡或是多會編程,在學(xué)習(xí)和解決問題上總會碰到障礙。熟練掌握核心內(nèi)容,特別是和多線程初步具備面向?qū)ο笤O(shè)計(jì)和編程的能力掌握基本的優(yōu)化策略。 學(xué)Java編程真的不是一件容易的事,不管你多喜歡或是多會Java編程,在學(xué)習(xí)和解決問題上總會碰到障礙。工作的時(shí)間越久就越能明白這個(gè)道理。不過這倒是一個(gè)讓人進(jìn)步的機(jī)會,因?yàn)槟阋恢辈粩嗟膶W(xué)習(xí)才能很好的解決你面前的難題...
閱讀 1491·2023-01-11 13:20
閱讀 1850·2023-01-11 13:20
閱讀 1289·2023-01-11 13:20
閱讀 2041·2023-01-11 13:20
閱讀 4241·2023-01-11 13:20
閱讀 2948·2023-01-11 13:20
閱讀 1580·2023-01-11 13:20
閱讀 3852·2023-01-11 13:20