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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

JVM系列五:JVM监测工具[整理中]

發(fā)布時間:2023/12/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JVM系列五:JVM监测工具[整理中] 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉(zhuǎn)自本站:http://www.cnblogs.com/redcreen/archive/2011/05/09/2040977.html

?前幾篇篇文章介紹了介紹了JVM的參數(shù)設(shè)置并給出了一些生產(chǎn)環(huán)境的JVM參數(shù)配置參考方案。正如之前文章中提到的JVM參數(shù)的設(shè)置需要根據(jù)應(yīng)用的特性來進行設(shè)置,每個參數(shù)的設(shè)置都需要對JVM進行長時間的監(jiān)測,并不斷進行調(diào)整才能找到最佳設(shè)置方案。本文將介紹如果通過工具及Java api來監(jiān)測JVM的運行狀態(tài),并詳細介紹各工具的使用方法。

?????? 需要監(jiān)測的數(shù)據(jù):(內(nèi)存使用情況 誰使用了內(nèi)存 GC的狀況)

內(nèi)存使用情況--heap&PermGen

@ 表示通過jmap –heap?pid?可以獲取的值

# 表示通過jstat –gcutil?pid?可以獲取的值

參數(shù)的查看可以通過多種方法 本文中只隨機列出一種。

描述最大值當前值報警值
堆內(nèi)存@Heap Configuration::MaxHeapSize
sum(eden+servivor+old)
sum(eden+servivor+old)自設(shè)
非堆內(nèi)存sum(perm+native)?
Eden@Eden Space::capacity@Eden Space::used
Survivor0@From Space::capacity@From Space::used
Survivor1@To Space::capacity@To Space::used
New gen
(注意區(qū)別于Xmn參數(shù)設(shè)置)
@New Generation::capacity
Eden + 1 Survivor Space
@New Generation::used
Old gen@concurrent mark-sweep generation::capacity
(CMS是對old區(qū)的gc,所以此處即表示old gen)
@concurrent mark-sweep generation::capacity(CMS)::used自設(shè)
Perm Gen@Perm Generation::capacity@Perm Generation::used自設(shè)

內(nèi)存使用情況--config

描述配置值
MaxTenuringThresholdjinfo -flag MaxTenuringThreshold?pid
MinHeapFreeRatio@Heap Configuration::MinHeapFreeRatio
MaxHeapFreeRatio@Heap Configuration::MaxHeapFreeRatio
new gen gc@using … in the new generation
old gen gcnew gen gc聲明下方
類總數(shù)統(tǒng)計??

內(nèi)存使用情況—C heap

  • top or ps aux

誰使用了內(nèi)存

  • Heap
    jmap –histo
    jmap –dump ,then mat
  • C heap
    google perftools

GC的狀況

描述收集次數(shù)收集時間應(yīng)用暫停時間
Full GC#FGC#FGCT設(shè)置-XX:+PrintGCApplicationStoppedTime后在日志中查看
Young GC#YGC#YGCT同上

-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC??-XX:+PrintGCApplicationStoppedTime? -Xloggc:logs/gc.log

?

常用工具介紹:jinfo jmap jstack jstat

jinfo?

  • 可以從一個給定的java進程或core文件或遠程debug服務(wù)器上獲取java配置信息。包括java系統(tǒng)屬性及JVM參數(shù)(command line flags)。注意在jvm啟動參數(shù)中沒有配置的參數(shù)也可使用jinfo –flag xxx pid輸出默認值(很有用,但貌似一些簡寫的參數(shù)查不出來)。
  • 可以修改運行時的java 進程的opts。
  • 只有solaris和linux的JDK版本里有。
  • 使用方式可使用jinfo –h 查詢。

jmap

?????? 觀察運行中的jvm物理內(nèi)存的占用情況。

?????? 如果連用SHELL jmap -histo pid>a.log可以將其保存到文本中去,在一段時間后,使用文本對比工具,可以對比出GC回收了哪些對象。

?????? 參數(shù)很簡單,直接查看jmap -h

?????? 舉例:

jmap -heap pid

jmap -dump:format=b,file=heap.hprof <pid>

dump文件可以通過MemoryAnalyzer分析查看.網(wǎng)址:http://www.eclipse.org/mat/,可以查看dump時對象數(shù)量,內(nèi)存占用,線程情況等。 jmap -dump:live為啥會觸發(fā)Full GC

jstack

?????? 觀察jvm中當前所有線程的運行情況和線程當前狀態(tài)

?????? 如果java程序崩潰生成core文件,jstack工具可以用來獲得core文件的java stack和native stack的信息,從而可以輕松地知道java程序是如何崩潰和在程序何處發(fā)生問題。另外,jstack工具還可以附屬到正在運行的java程序中,看到當時運行的java程序的java stack和native stack的信息, 如果現(xiàn)在運行的java程序呈現(xiàn)hung的狀態(tài),jstack是非常有用的。目前只有在Solaris和Linux的JDK版本里面才有。

?????? 參數(shù)很簡單,直接查看jstack -h

?????? 舉例:

jstack pid

jstat

?????? JVM監(jiān)測工具(Java Virtual Machine Statistics Monitoring Tool)。利用了JVM內(nèi)建的指令對Java應(yīng)用程序的資源和性能進行實時的命令行的監(jiān)控,包括各種堆和非堆的大小及其內(nèi)存使用量、classloader、compiler、垃圾回收狀況等。

舉例:

jstat –printcompilation -h10 3024 250 600

???? 每250毫秒打印一次,一共打印600次 每隔10行顯示一次head

語法結(jié)構(gòu): Usage: jstat -help|-options
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

參數(shù)介紹:

  • -h n 每隔幾行輸出標題
  • vmid VM的進程號,即當前運行的java進程號
  • -t 在第一列顯示自JVM啟動以來的時間戳
  • -J 修改java進程的參數(shù)。類似jinfo -flag <name>=<value>。例如-J-Xms48m?設(shè)置初始堆為48M。詳見這里。這個參數(shù)挺有用的,可以在運行中調(diào)整參數(shù)以方便測試、監(jiān)測。
  • -option option為要檢測的參數(shù)。參數(shù)列表可通過jstat –options 獲取。下面將分別介紹每個參數(shù)及輸出字段的含義。
class統(tǒng)計class loader行為信息
compiler統(tǒng)計編譯行為信息
gc統(tǒng)計jdk gc時heap信息
gccapacity統(tǒng)計堆內(nèi)存不同代的heap容量信息
gccause統(tǒng)計gc的情況(同-gcutil)和引起gc的事件
gcnew統(tǒng)計gc時新生代的信息(相比gcutil更詳細)
gcnewcapacity統(tǒng)計gc時新生代heap容量
gcold統(tǒng)計gc時,老年區(qū)的情況
gcoldcapacity統(tǒng)計gc時,老年區(qū)heap容量
gcpermcapacity統(tǒng)計gc時,permanent區(qū)heap容量
gcutil統(tǒng)計gc時,heap情況
printcompilation統(tǒng)計編譯行為信息

-class option:Class Loader Statistics

ColumnDescription
LoadedNumber of classes loaded.
BytesNumber of Kbytes loaded.
UnloadedNumber of classes unloaded.
BytesNumber of Kbytes unloaded.
TimeTime spent performing class load and unload operations.

-compiler:HotSpot Just-In-Time Compiler Statistics

ColumnDescription
CompiledNumber of compilation tasks performed.
FailedNumber of compilation tasks that failed.
InvalidNumber of compilation tasks that were invalidated.
TimeTime spent performing compilation tasks.
FailedTypeCompile type of the last failed compilation.
FailedMethodClass name and method for the last failed compilation.

-gc Option:Garbage-collected heap statistics

ColumnDescription
S0CCurrent survivor space 0 capacity (KB).
S1CCurrent survivor space 1 capacity (KB).
S0USurvivor space 0 utilization (KB).
S1USurvivor space 1 utilization (KB).
ECCurrent eden space capacity (KB).
EUEden space utilization (KB).
OCCurrent old space capacity (KB).
OUOld space utilization (KB).
PCCurrent permanent space capacity (KB).
PUPermanent space utilization (KB).
YGCNumber of young generation GC Events.
YGCTYoung generation garbage collection time.
FGCNumber of full GC events.
FGCTFull garbage collection time.
GCTTotal garbage collection time.

-gccapacity Option:Memory Pool Generation and Space Capacities

ColumnDescription
NGCMNMinimum new generation capacity (KB).
NGCMXMaximum new generation capacity (KB).
NGCCurrent new generation capacity (KB).
S0CCurrent survivor space 0 capacity (KB).
S1CCurrent survivor space 1 capacity (KB).
ECCurrent eden space capacity (KB).
OGCMNMinimum old generation capacity (KB).
OGCMXMaximum old generation capacity (KB).
OGCCurrent old generation capacity (KB).
OCCurrent old space capacity (KB).
PGCMNMinimum permanent generation capacity (KB).
PGCMXMaximum Permanent generation capacity (KB).
PGCCurrent Permanent generation capacity (KB).
PCCurrent Permanent space capacity (KB).
YGCNumber of Young generation GC Events.
FGCNumber of Full GC Events.

-gccause Option:Garbage Collection Statistics, Including GC Events

ColumnDescription
LGCCCause of last Garbage Collection.
GCCCause of current Garbage Collection.

?????? 前面的字段與gcutil相同.

-gcnew Option:New Generation Statistics

ColumnDescription
S0CCurrent survivor space 0 capacity (KB).
S1CCurrent survivor space 1 capacity (KB).
S0USurvivor space 0 utilization (KB).
S1USurvivor space 1 utilization (KB).
TTTenuring threshold.
MTTMaximum tenuring threshold.
DSSDesired survivor size (KB).
ECCurrent eden space capacity (KB).
EUEden space utilization (KB).
YGCNumber of young generation GC events.
YGCTYoung generation garbage collection time.

-gcnewcapacity Option:New Generation Space Size Statistics

ColumnDescription
NGCMN???????????Minimum new generation capacity (KB).?
NGCMX????Maximum new generation capacity (KB).
NGC????Current new generation capacity (KB).
S0CMXMaximum survivor space 0 capacity (KB).
S0CCurrent survivor space 0 capacity (KB).
S1CMXMaximum survivor space 1 capacity (KB).
S1CCurrent survivor space 1 capacity (KB).
ECMXMaximum eden space capacity (KB).
ECCurrent eden space capacity (KB).
YGCNumber of young generation GC events.
FGCNumber of Full GC Events.

-gcold Option:Old and Permanent Generation Statistics

ColumnDescription
PCCurrent permanent space capacity (KB).
PUPermanent space utilization (KB).
OCCurrent old space capacity (KB).
OUold space utilization (KB).
YGCNumber of young generation GC events.
FGCNumber of full GC events.
FGCTFull garbage collection time.
GCTTotal garbage collection time.

-gcoldcapacity Option:Old Generation Statistics

ColumnDescription
OGCMNMinimum old generation capacity (KB).
OGCMXMaximum old generation capacity (KB).
OGCCurrent old generation capacity (KB).
OCCurrent old space capacity (KB).
YGCNumber of young generation GC events.
FGCNumber of full GC events.
FGCTFull garbage collection time.
GCTTotal garbage collection time.

-gcpermcapacity Option: Permanent Generation Statistics

ColumnDescription
PGCMNMinimum permanent generation capacity (KB).
PGCMXMaximum permanent generation capacity (KB).
PGCCurrent permanent generation capacity (KB).
PCCurrent permanent space capacity (KB).
YGCNumber of young generation GC events.
FGCNumber of full GC events.
FGCTFull garbage collection time.
GCTTotal garbage collection time.

-gcutil Option:Summary of Garbage Collection Statistics

ColumnDescription
S0Survivor space 0 utilization as a percentage of the space's current capacity.
S1Survivor space 1 utilization as a percentage of the space's current capacity.
EEden space utilization as a percentage of the space's current capacity.
OOld space utilization as a percentage of the space's current capacity.
PPermanent space utilization as a percentage of the space's current capacity.
YGCNumber of young generation GC events.
YGCTYoung generation garbage collection time.
FGCNumber of full GC events.
FGCTFull garbage collection time.
GCTTotal garbage collection time.

-printcompilation Option: HotSpot Compiler Method Statistics

ColumnDescription
CompiledNumber of compilation tasks performed.
SizeNumber of bytes of bytecode for the method.
TypeCompilation type.
MethodClass name and method name identifying the compiled method. Class name uses "/" instead of "." as namespace separator. Method name is the method within the given class. The format for these two fields is consistent with the HotSpot -?XX:+PrintComplation?option.

?

Java api方式監(jiān)測

?????? jre中提供了一些查看運行中的jvm內(nèi)部信息的api,這些api包含在java.lang.management包中,此包中的接口是在jdk 5中引入的,所以只有在jdk 5及其以上版本中才能通過這種方式訪問這些信息。下面簡單介紹一下這包括哪些信息,以及如何訪問。

?????? 可以通過此api訪問到運行中的jvm的類加載的信息、jit編譯器的信息、內(nèi)存分配的情況、線程的相關(guān)信息以及運行jvm的操作系統(tǒng)的信息。java.lang.management包中提供了9個接口來訪問這些信息,使用ManagementFactory的靜態(tài)get方法可以獲得相應(yīng)接口的實例,可以通過這些實例來獲取你需要的相關(guān)信息。

?????? 更詳細的關(guān)于MBean的介紹參見Java SE 6 新特性: JMX 與系統(tǒng)管理

?????? demo1:查看一下當前運行的jvm中加載了多少個類。想詳細了解如何使用這些api,可以參考java.lang.management包中的詳細api文檔。

public class ClassLoaderChecker {
public static void main( String[] args ) throws Exception {
????? ClassLoadingMXBean bean = ManagementFactory.getClassLoadingMXBean();
????? System.out.println( bean.getLoadedClassCount() );
??? }
} demo2:自定義Mbean Type,記錄的數(shù)據(jù)可通過jconsole等工具或自寫代碼查看,

//工具方法

public static ObjectName register(String name, Object mbean) {
try {
ObjectName objectName = new ObjectName(name);

MBeanServer mbeanServer = ManagementFactory
.getPlatformMBeanServer();

try {
mbeanServer.registerMBean(mbean, objectName);
} catch (InstanceAlreadyExistsException ex) {
mbeanServer.unregisterMBean(objectName);
mbeanServer.registerMBean(mbean, objectName);
}

return objectName;
} catch (JMException e) {
throw new IllegalArgumentException(name, e);
}
}

//步驟一:定義Mbean接口: //隨便定義 public interface DemoMBean { public AtomicLong getInvokeCount(); } //步驟二:實現(xiàn)接口,并注冊: public class DemoImpl implements DemoMBean{ public final static String DEFAULT_OBJECT_NAME_PREFIX = "com.redcreen.demo:type=demo"; register("com.redcreen.demo:type=demo",DemoImpl.instance); } //可以通過jconsole中查看數(shù)據(jù)了

相關(guān)推薦文章:

在 Java SE 6 中監(jiān)視和診斷性能問題

?

參考:

http://www.51testing.com/?uid-183198-action-viewspace-itemid-185174

JVM監(jiān)控工具介紹jstack, jconsole, jinfo, jmap, jdb, jstat

http://stl-www.htw-saarland.de/syst-lab/java/jdk-1_5_0/docs/tooldocs/share/jinfo.html

http://qa.taobao.com/?p=10010

運用Jconsole監(jiān)控JVM

http://www.coderanch.com/t/329407/java/java/find-all-loaded-classes-classloaders

轉(zhuǎn)載于:https://www.cnblogs.com/southdom/articles/5001707.html

總結(jié)

以上是生活随笔為你收集整理的JVM系列五:JVM监测工具[整理中]的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩视频一区二区在线观看 | 韩国av在线免费观看 | 99re热这里只有精品视频 | 麻豆免费视频 | 久操这里只有精品 | 青草视频在线观看视频 | 全黄一级裸体片 | 成人毛片一区二区三区 | 一级黄色片免费在线观看 | 欧美八区 | 亚洲欧美一 | 性欧美欧美巨大69 | 国产99久久久国产精品成人免费 | 国产精品久久久久久久久久妞妞 | 美丽的姑娘观看在线播放 | 亚洲三级网站 | 777片理伦片在线观看 | 美女一区二区三区视频 | 人体内射精一区二区三区 | 精人妻一区二区三区 | 日韩欧美成人网 | 久久九九热 | 被黑人啪到哭的番号922在线 | 特级西西444www高清大胆 | 久久国产亚洲精品无码 | 国产亚洲综合av | 97碰碰视频| 97久久综合| 国产一级一片免费播放 | 片集网| 夜夜天堂 | www视频在线免费观看 | 亚洲污网站 | 欧美一级久久 | 94av| 日韩成人动漫在线观看 | 久久精品国产亚洲av蜜臀色欲 | 熟妇人妻中文av无码 | 毛片网站大全 | 日韩午夜激情视频 | 欧美性生活一区二区三区 | 亚洲精品在线影院 | 国产精品中文久久久久久 | 中文字幕在线影院 | www在线| 香蕉婷婷 | 国产cao | 欧美成人三级视频 | 欧美激情视频一区二区三区在线播放 | 国产中文一区二区三区 | 国产主播在线看 | 日韩网站在线观看 | 性www| 在线亚洲人成电影网站色www | 欧美激情视频网址 | 欧美激情免费 | 亚洲天堂免费看 | 91丨porny丨在线中文 | 69视频国产 | 51精产品一区一区三区 | 777理伦三级做爰 | 亚洲国产精品自拍 | 这里只有精品视频在线 | 欧美黄色大片视频 | 一级片免费观看视频 | 成人av视屏 | 日韩欧美成人免费视频 | 欧美xxxx吸乳 | 高清一区二区三区四区 | 男人网站在线观看 | 国产精品美女www爽爽爽 | 欧美少妇精品 | 在线观看免费成人 | 亚洲色图第一页 | 亚洲av无码成人精品国产 | 久久77777 | 国产一级做a爰片久久毛片男 | 亚洲自拍成人 | 快色av | 亚洲国产电影在线观看 | 国产黄色美女视频 | 成人影视网址 | 欧美xxxⅹ性欧美大片 | 亚洲а∨天堂久久精品2021 | 日本系列第一页 | 超碰av在线播放 | 美美女高清毛片视频免费观看 | 久久天天操 | 欧美一级片在线 | 人妻少妇久久中文字幕 | 欧美日韩国产一区二区在线观看 | 精品日韩制服无码久久久久久 | 少妇久久久久久久 | 99视频在线免费 | 美女被娇喘流出白 | 韩国三级中文字幕hd浴缸戏 | 色爱色| 成人青青草 | 欧美射射射 |