一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - Java教程 - 詳解JVM 運行時內存使用情況監控

詳解JVM 運行時內存使用情況監控

2021-06-01 11:45Hinsteny-Hisoka Java教程

這篇文章主要介紹了詳解JVM 運行時內存使用情況監控,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

java 語言, 開發者不能直接控制程序運行內存, 對象的創建都是由類加載器一步步解析, 執行與生成與內存區域中的; 并且jvm有自己的垃圾回收器對內存區域管理, 回收; 但是我們已經可以通過一些工具來在程序運行時查看對應的jvm內存使用情況, 幫助更好的分析與優化我們的代碼;

注: 查看系統里java進程信息

?
1
2
3
4
// 查看當前機器上所有運行的java進程名稱與pid(進程編號)
jps -l
// 顯示指定的jvm進程所有的屬性設置和配置參數
jinfo pid

1 . jmap : 內存占用情況查詢 (位于”jdk_home/bin”目錄下)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// 查詢某個pid進程對應的應用程序內存占用情況
jmap -heap pid
 
// 示例
jmap -heap 5940
attaching to process id 5940, please wait...
debugger attached successfully.
server compiler detected.
jvm version is 25.92-b14
 
using thread-local object allocation.
parallel gc with 4 thread(s)
 
heap configuration:
 minheapfreeratio   = 0
 maxheapfreeratio   = 100
 maxheapsize    = 734003200 (700.0mb)
 newsize     = 44040192 (42.0mb)
 maxnewsize    = 244318208 (233.0mb)
 oldsize     = 88080384 (84.0mb)
 newratio     = 2
 survivorratio   = 8
 metaspacesize   = 21807104 (20.796875mb)
 compressedclassspacesize = 1073741824 (1024.0mb)
 maxmetaspacesize   = 17592186044415 mb
 g1heapregionsize   = 0 (0.0mb)
 
heap usage:
ps young generation
eden space:
 capacity = 32505856 (31.0mb)
 used  = 13906760 (13.262519836425781mb)
 free  = 18599096 (17.73748016357422mb)
 42.782322052986395% used
from space:
 capacity = 6291456 (6.0mb)
 used  = 294912 (0.28125mb)
 free  = 5996544 (5.71875mb)
 4.6875% used
to space:
 capacity = 7340032 (7.0mb)
 used  = 0 (0.0mb)
 free  = 7340032 (7.0mb)
 0.0% used
ps old generation
 capacity = 41943040 (40.0mb)
 used  = 6127536 (5.8436737060546875mb)
 free  = 35815504 (34.15632629394531mb)
 14.609184265136719% used
 
8535 interned strings occupying 710344 bytes.

2 . jstack : 進程所包含線程情況查詢 (位于”jdk_home/bin”目錄下)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// 命令幫助
jstach -h
// 顯示進程詳情
jstack pid
 
// 示例
jstach 5940
full thread dump java hotspot(tm) 64-bit server vm (25.92-b14 mixed mode):
 
"rmi tcp connection(10)-10.2.13.162" #32 daemon prio=5 os_prio=0 tid=0x00000000179dc000 nid=0x1f60 in object.wait() [0x000000001d7dd000]
 java.lang.thread.state: timed_waiting (on object monitor)
  at java.lang.object.wait(native method)
  at com.sun.jmx.remote.internal.arraynotificationbuffer.fetchnotifications(arraynotificationbuffer.java:449)
  - locked <0x00000000d462ec18> (a com.sun.jmx.remote.internal.arraynotificationbuffer)
  at com.sun.jmx.remote.internal.arraynotificationbuffer$sharebuffer.fetchnotifications(arraynotificationbuffer.java:227)
  at com.sun.jmx.remote.internal.servernotifforwarder.fetchnotifs(servernotifforwarder.java:274)
  at javax.management.remote.rmi.rmiconnectionimpl$4.run(rmiconnectionimpl.java:1270)
  at javax.management.remote.rmi.rmiconnectionimpl$4.run(rmiconnectionimpl.java:1268)
  at javax.management.remote.rmi.rmiconnectionimpl.fetchnotifications(rmiconnectionimpl.java:1274)
  at sun.reflect.generatedmethodaccessor59.invoke(unknown source)
  at sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43)
  at java.lang.reflect.method.invoke(method.java:498)
  at sun.rmi.server.unicastserverref.dispatch(unicastserverref.java:324)
 
..............
 
"gc task thread#1 (parallelgc)" os_prio=0 tid=0x0000000002d10000 nid=0x27dc runnable
 
"gc task thread#2 (parallelgc)" os_prio=0 tid=0x0000000002d11800 nid=0x2d84 runnable
 
"gc task thread#3 (parallelgc)" os_prio=0 tid=0x0000000002d13800 nid=0x118 runnable
 
"vm periodic task thread" os_prio=2 tid=0x0000000015ccb000 nid=0x2fd4 waiting on condition
 
jni global references: 239

3 . jstat: 可以實時監測系統資源占用與jvm運行情況 (位于”jdk_home/bin”目錄下)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// 命令語法結構:
usage: jstat -help|-options
  jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
 
// 參數解釋:
options — 選項,我們一般使用 -gcutil 查看gc情況
vmid — vm的進程號,即當前運行的java進程號
interval– 間隔時間,單位為秒或者毫秒
count — 打印次數,如果缺省則打印無數次
 
s0 — heap上的 survivor space 0 區已使用空間的百分比
s1 — heap上的 survivor space 1 區已使用空間的百分比
e — heap上的 eden space 區已使用空間的百分比
o — heap上的 old space 區已使用空間的百分比
p — perm space 區已使用空間的百分比
ygc — 從應用程序啟動到采樣時發生 young gc 的次數
ygct– 從應用程序啟動到采樣時 young gc 所用的時間(單位秒)
fgc — 從應用程序啟動到采樣時發生 full gc 的次數
fgct– 從應用程序啟動到采樣時 full gc 所用的時間(單位秒)
gct — 從應用程序啟動到采樣時用于垃圾回收的總時間(單位秒)
 
//示例
jstat -options
 -class
 -compiler
 -gc
 -gccapacity
 -gccause
 -gcmetacapacity
 -gcnew
 -gcnewcapacity
 -gcold
 -gcoldcapacity
 -gcutil
 -printcompilation
 
jstat -class -t 5940
timestamp loaded bytes unloaded bytes  time
6188.4 3898 7178.4  40 58.3  1.78
 
jstat -gcutil 5940 1000 5
s0  s1  e  o  m  ccs ygc  ygct fgc fgct  gct
0.00 25.00 98.55 15.37 96.94 94.88  21 0.069  7 0.237 0.306
0.00 25.00 99.59 15.37 96.94 94.88  21 0.069  7 0.237 0.306
0.00 25.00 99.59 15.37 96.94 94.88  21 0.069  7 0.237 0.306
0.00 25.00 100.00 15.37 96.94 94.88  21 0.069  7 0.237 0.306
0.00 25.00 100.00 15.37 96.94 94.88  21 0.069  7 0.237 0.306

4 . jconsole 以gui的方式更直觀化呈現jvm進程的實時情況, 比如內存占用, 線程執行情況等;
在jdk_home/bin目錄下執行 jconsole.exe 打開圖形化界面, 然后選擇要檢查的進程就可以查看所有相關jvm情況的信息了.

詳解JVM 運行時內存使用情況監控

5 . jprofiler 一個付費的商業jvm分析監控工具, 可查看概況, 內存, gc活動, class 狀況, 線程信息, cpu 占用情況, 內存對象信息, 還有數據庫連接等, 是一個非常優秀的分析工具;

詳解JVM 運行時內存使用情況監控

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/HinstenyHisoka/article/details/54311722

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 啊哈用力cao我 | 思思久久精品在热线热 | 小黄文污到你湿 | 免费国产网站 | 免费看国产精品久久久久 | 欧美性xxx狂流白浆 欧美性f | 成人观看免费观看视频 | 国产激情视频在线 | 日韩一区在线观看 | 999国产精品亚洲77777 | 精品视频免费在线观看 | 国产清纯91天堂在线观看 | 秋霞在线观看成人高清视频51 | 国产日韩欧美成人 | 欧美猛男同志video在线 | 视频免费 | 日韩经典在线 | avove本人照片 | 四虎comwww最新地址 | 日韩欧美一区二区在线 | 亚洲精品www久久久久久久软件 | 午夜一个人在线观看完整版 | 欧美日韩一区二区三区在线视频 | 色天使亚洲综合在线观看 | 国产在线精品亚洲第一区香蕉 | 单亲乱l仑在线观看免费观看 | 亚洲一二区视频 | 精品国产91久久久久 | 国产91精品久久久久久 | 白丝校花好湿好紧 | 欧美成人免费观看bbb | 天海翼三级 | 好大好猛好深好爽视频 | 精品一区二区视频 | 2022最新a精品视频在线观看 | 波多野结衣护士 | 成人免费视频播放 | 成人xxxxxx| 大陆国产vs国产对白 | 色成人综合网 | se01在线看片|