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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

JVM性能调优监控工具总结

發(fā)布時(shí)間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JVM性能调优监控工具总结 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

JDK本身提供了很多方便的JVM性能調(diào)優(yōu)監(jiān)控工具,有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具.

?

1.jps(Java Virtual Machine Process Status Tool)

最常用的就是 jps -mlvV

jps主要用來(lái)輸出JVM中運(yùn)行的進(jìn)程狀態(tài)信息。語(yǔ)法格式如下:

jps [options] [hostid]

如果不指定hostid就默認(rèn)為當(dāng)前主機(jī)或服務(wù)器。

命令行參數(shù)選項(xiàng)說(shuō)明如下:

-q 不輸出類(lèi)名、Jar名和傳入main方法的參數(shù)

-m 輸出傳入main方法的參數(shù)

-l 輸出main類(lèi)或Jar的全限名

-v 輸出傳入JVM的參數(shù)

?

2.jstack

最常用的用法有兩種:

jstack 1234

jstack -m 1234 #native+java棧

?

jstack主要用來(lái)查看某個(gè)Java進(jìn)程內(nèi)的線程堆棧信息。語(yǔ)法格式如下:

jstack [option] pid

jstack [option] executable core

jstack [option] [server-id@]remote-hostname-or-ip

命令行參數(shù)選項(xiàng)說(shuō)明如下:

-l long listings,會(huì)打印出額外的鎖信息,在發(fā)生死鎖時(shí)可以用jstack -l pid來(lái)觀察鎖持有情況

-m mixed mode,不僅會(huì)輸出Java堆棧信息,還會(huì)輸出C/C++堆棧信息(比如Native方法)

jstack可以定位到線程堆棧,根據(jù)堆棧信息我們可以定位到具體代碼,所以它在JVM性能調(diào)優(yōu)中使用得非常多。

?

3.jinfo

最常用用法:jinfo -flags 1234

可以輸出并修改運(yùn)行時(shí)的java 進(jìn)程的opts。用處比較簡(jiǎn)單,就是能輸出并修改運(yùn)行時(shí)的java進(jìn)程的運(yùn)行參數(shù)。用法是jinfo -opt pid 如:查看1234的MaxPerm大小可以用 jinfo -flag MaxPermSize 1234

?

4.jmap(Memory Map)和jhat(Java Heap Analysis Tool)

最常用用法:

a.查看堆的情況:jmap -heap 1234

b.dump:jmap -dump:live,format=b,file=/home/admin/logs/heap.bin 1234

或者:jmap -dump:format=b,file=/home/admin/logs/heap.bin 1234

c.查看堆被誰(shuí)占用了:jmap -histo 1234 | head -10

再結(jié)合btrace的分析

?

jmap用來(lái)查看堆內(nèi)存使用狀況,一般結(jié)合jhat使用。

jmap語(yǔ)法格式如下:

jmap [option] pid

jmap [option] executable core

jmap [option] [server-id@]remote-hostname-or-ip

使用jmap -heap pid查看進(jìn)程堆內(nèi)存使用情況,包括使用的GC算法、堆配置參數(shù)和各代中堆內(nèi)存使用情況。

使用jmap -histo[:live] pid查看堆內(nèi)存中的對(duì)象數(shù)目、大小統(tǒng)計(jì)直方圖,如果帶上live則只統(tǒng)計(jì)活對(duì)象

其中class name是對(duì)象類(lèi)型,說(shuō)明如下:

B byte

C char

D double

F float

I int

J long

Z boolean

[ 數(shù)組,如[I表示int[]

[L+類(lèi)名 其他對(duì)象)

還有一個(gè)很常用的情況是:用jmap把進(jìn)程內(nèi)存使用情況dump到文件中,再用jhat分析查看。jmap進(jìn)行dump命令格式如下:

jmap -dump:format=b,file=dumpFileName pid。注意如果Dump文件太大,可能需要加上-J-Xmx512m這種參數(shù)指定最大堆內(nèi)存,即jhat -J-Xmx512m -port 9998 /tmp/dump.dat。然后就可以在瀏覽器中輸入主機(jī)地址:9998查看了

?

5.jstat

jstat參數(shù)很多,最常用的是 jstat -gcutil 1234 1000

先看JVM堆內(nèi)存布局:

堆內(nèi)存 = 年輕代 + 年老代 + 永久代

年輕代 = Eden區(qū) + 兩個(gè)Survivor區(qū)(From和To)

現(xiàn)在來(lái)解釋各列含義:

S0C、S1C、S0U、S1U:Survivor 0/1區(qū)容量(Capacity)和使用量(Used)

EC、EU:Eden區(qū)容量和使用量

OC、OU:年老代容量和使用量

PC、PU:永久代容量和使用量

YGC、YGT:年輕代GC次數(shù)和GC耗時(shí)

FGC、FGCT:Full GC次數(shù)和Full GC耗時(shí)

GCT:GC總耗時(shí)

轉(zhuǎn)載于:https://www.cnblogs.com/john8169/p/9780542.html

與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的JVM性能调优监控工具总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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