最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解JVM 運(yùn)行時(shí)內(nèi)存使用情況監(jiān)控

 更新時(shí)間:2018年09月19日 13:44:15   作者:Hinsteny-Hisoka  
這篇文章主要介紹了詳解JVM 運(yùn)行時(shí)內(nèi)存使用情況監(jiān)控,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

java 語(yǔ)言, 開(kāi)發(fā)者不能直接控制程序運(yùn)行內(nèi)存, 對(duì)象的創(chuàng)建都是由類(lèi)加載器一步步解析, 執(zhí)行與生成與內(nèi)存區(qū)域中的; 并且jvm有自己的垃圾回收器對(duì)內(nèi)存區(qū)域管理, 回收; 但是我們已經(jīng)可以通過(guò)一些工具來(lái)在程序運(yùn)行時(shí)查看對(duì)應(yīng)的jvm內(nèi)存使用情況, 幫助更好的分析與優(yōu)化我們的代碼;

注: 查看系統(tǒng)里java進(jìn)程信息

// 查看當(dāng)前機(jī)器上所有運(yùn)行的java進(jìn)程名稱(chēng)與pid(進(jìn)程編號(hào))
jps -l 
// 顯示指定的jvm進(jìn)程所有的屬性設(shè)置和配置參數(shù)
jinfo pid

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

// 查詢(xún)某個(gè)pid進(jìn)程對(duì)應(yīng)的應(yīng)用程序內(nèi)存占用情況
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 : 進(jìn)程所包含線程情況查詢(xún) (位于”jdk_home/bin”目錄下)

// 命令幫助
jstach -h 
// 顯示進(jìn)程詳情
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: 可以實(shí)時(shí)監(jiān)測(cè)系統(tǒng)資源占用與jvm運(yùn)行情況 (位于”jdk_home/bin”目錄下)

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

// 參數(shù)解釋?zhuān)?
Options — 選項(xiàng),我們一般使用 -gcutil 查看gc情況
vmid — VM的進(jìn)程號(hào),即當(dāng)前運(yùn)行的java進(jìn)程號(hào)
interval– 間隔時(shí)間,單位為秒或者毫秒
count — 打印次數(shù),如果缺省則打印無(wú)數(shù)次

S0 — Heap上的 Survivor space 0 區(qū)已使用空間的百分比
S1 — Heap上的 Survivor space 1 區(qū)已使用空間的百分比
E — Heap上的 Eden space 區(qū)已使用空間的百分比
O — Heap上的 Old space 區(qū)已使用空間的百分比
P — Perm space 區(qū)已使用空間的百分比
YGC — 從應(yīng)用程序啟動(dòng)到采樣時(shí)發(fā)生 Young GC 的次數(shù)
YGCT– 從應(yīng)用程序啟動(dòng)到采樣時(shí) Young GC 所用的時(shí)間(單位秒)
FGC — 從應(yīng)用程序啟動(dòng)到采樣時(shí)發(fā)生 Full GC 的次數(shù)
FGCT– 從應(yīng)用程序啟動(dòng)到采樣時(shí) Full GC 所用的時(shí)間(單位秒)
GCT — 從應(yīng)用程序啟動(dòng)到采樣時(shí)用于垃圾回收的總時(shí)間(單位秒)

//示例
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的方式更直觀化呈現(xiàn)jvm進(jìn)程的實(shí)時(shí)情況, 比如內(nèi)存占用, 線程執(zhí)行情況等;
在jdk_home/bin目錄下執(zhí)行 jconsole.exe 打開(kāi)圖形化界面, 然后選擇要檢查的進(jìn)程就可以查看所有相關(guān)jvm情況的信息了.

JVM運(yùn)行內(nèi)存監(jiān)控

5 . jprofiler 一個(gè)付費(fèi)的商業(yè)jvm分析監(jiān)控工具, 可查看概況, 內(nèi)存, GC活動(dòng), class 狀況, 線程信息, CPU 占用情況, 內(nèi)存對(duì)象信息, 還有數(shù)據(jù)庫(kù)連接等, 是一個(gè)非常優(yōu)秀的分析工具;

JVM運(yùn)行內(nèi)存監(jiān)控

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • mybatis源碼解讀-Java中executor包的語(yǔ)句處理功能

    mybatis源碼解讀-Java中executor包的語(yǔ)句處理功能

    這篇文章主要介紹了Java中executor包的語(yǔ)句處理功能,在mybatis映射文件中傳參數(shù),主要用到#{}或者${},下文圍繞相關(guān)資料展開(kāi)詳細(xì)內(nèi)容,需要的小伙伴可以參考一下
    2022-02-02
  • 學(xué)習(xí)JVM之java內(nèi)存區(qū)域與異常

    學(xué)習(xí)JVM之java內(nèi)存區(qū)域與異常

    關(guān)于JVM內(nèi)存區(qū)域的知識(shí)對(duì)于初學(xué)者來(lái)說(shuō)其實(shí)是很重要的,了解Java內(nèi)存分配的原理,這對(duì)于以后JAVA的學(xué)習(xí)會(huì)有更深刻的理解。下面來(lái)看看詳細(xì)介紹。
    2016-07-07
  • macOS中搭建Java8開(kāi)發(fā)環(huán)境(基于Intel?x86?64-bit)

    macOS中搭建Java8開(kāi)發(fā)環(huán)境(基于Intel?x86?64-bit)

    這篇文章主要介紹了macOS中搭建Java8開(kāi)發(fā)環(huán)境(基于Intel?x86?64-bit)?的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Java實(shí)現(xiàn)ZooKeeper的zNode監(jiān)控

    Java實(shí)現(xiàn)ZooKeeper的zNode監(jiān)控

    這篇文章主要介紹了Java實(shí)現(xiàn)ZooKeeper的zNode監(jiān)控問(wèn)題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-08-08
  • SpringBoot集成ShedLock實(shí)現(xiàn)分布式定時(shí)任務(wù)流程詳解

    SpringBoot集成ShedLock實(shí)現(xiàn)分布式定時(shí)任務(wù)流程詳解

    ShedLock是一個(gè)鎖,官方解釋是他永遠(yuǎn)只是一個(gè)鎖,并非是一個(gè)分布式任務(wù)調(diào)度器。一般shedLock被使用的場(chǎng)景是,你有個(gè)任務(wù),你只希望他在單個(gè)節(jié)點(diǎn)執(zhí)行,而不希望他并行執(zhí)行,而且這個(gè)任務(wù)是支持重復(fù)執(zhí)行的
    2023-02-02
  • 深入解析Java多態(tài)進(jìn)階學(xué)習(xí)

    深入解析Java多態(tài)進(jìn)階學(xué)習(xí)

    java的動(dòng)態(tài)綁定機(jī)制非常重要。這篇文章將帶大家更深入的學(xué)習(xí)一下Java的多態(tài),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java有一定幫助,需要的可以參考一下
    2022-07-07
  • Spring注解之@Lazy注解使用解析

    Spring注解之@Lazy注解使用解析

    這篇文章主要介紹了Spring注解之@Lazy注解使用解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 判斷java文件類(lèi)型TikaToolKit的實(shí)例

    判斷java文件類(lèi)型TikaToolKit的實(shí)例

    這篇文章主要介紹了判斷java文件類(lèi)型TikaToolKit的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • Arthas排查Kubernetes中應(yīng)用頻繁掛掉重啟異常

    Arthas排查Kubernetes中應(yīng)用頻繁掛掉重啟異常

    這篇文章主要為大家介紹了Arthas排查Kubernetes中應(yīng)用頻繁掛掉重啟的異常分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助祝大家多多進(jìn)步
    2022-02-02
  • SpringCloud修改Feign日志記錄級(jí)別過(guò)程淺析

    SpringCloud修改Feign日志記錄級(jí)別過(guò)程淺析

    OpenFeign源于Netflix的Feign,是http通信的客戶(hù)端。屏蔽了網(wǎng)絡(luò)通信的細(xì)節(jié),直接面向接口的方式開(kāi)發(fā),讓開(kāi)發(fā)者感知不到網(wǎng)絡(luò)通信細(xì)節(jié)。所有遠(yuǎn)程調(diào)用,都像調(diào)用本地方法一樣完成
    2023-02-02

最新評(píng)論

乐安县| 临清市| 大庆市| 合川市| 纳雍县| 离岛区| 高清| 靖宇县| 九龙坡区| 衡阳市| 九江县| 吉水县| 镇坪县| 赣榆县| 德兴市| 阿合奇县| 友谊县| 乌鲁木齐县| 南涧| 安福县| 武宣县| 蓝山县| 桂阳县| 敖汉旗| 尚义县| 斗六市| 道孚县| 浮梁县| 隆尧县| 湘阴县| 茂名市| 新平| 平武县| 柳江县| 浦东新区| 池州市| 松桃| 宕昌县| 福海县| 井研县| 吕梁市|