大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 詳解JVM調優(yōu)

詳解JVM調優(yōu)

更新時間:2020-10-09 17:28:11 來源:動力節(jié)點 瀏覽1283次

JVM把內存區(qū)分為堆區(qū)(heap)、棧區(qū)(stack)和方法區(qū)(method)。由于本文主要講解JVM調優(yōu),因此我們可以簡單的理解為,JVM中的堆區(qū)中存放的是實際的對象,是需要被GC的。其他的都無需GC。


一、JMV調優(yōu)的準備工作


1、配置jstatd的遠程RMI服務(當我們要看遠程服務器上JAVA程序的GC情況的時候,需要執(zhí)行此步驟),允許JVM工具查看JVM使用情況。

將如下的代碼存為文件 jstatd.all.policy,放到JAVA_HOME/bin中,其內容如下:不知道JAVA_HOME目錄的,可以執(zhí)行 which java查看。

grant codebase "file:${java.home}/../lib/tools.jar" {

permission java.security.AllPermission;

};

執(zhí)行命令jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=10.27.20.38 &

(10.27.20.38為你服務器的ip地址,&表示用守護線程的方式運行)


2、執(zhí)行C:\glassfish4\jdk7\bin\jvisualvm.exe 打開JVM控制臺。

工具--插件--中找到Visual GC插件進行安裝。


3、對要執(zhí)行java程序進行調優(yōu),以 c1000k.jar為例,在該jar包所在目錄下建立一個start.sh文件,文件內容如下。

java -server -Xms4G -Xmx4G -Xmn2G -XX:SurvivorRatio=1 -XX:+UseConcMarkSweepGC -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1100 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -jar c1000k.jar&

通過這樣的配置,使用JVM控制臺即可查看JVM(CPU/內存)及垃圾回收的情況。


4、控制臺配置

打開\jvisualvm.exe,遠程---添加遠程主機---輸入遠程IP----添加JMX連接


二、下面開始正式的JVM調優(yōu)。

1.JVM調優(yōu)核心為調整年輕代、年老大的內存空間大小及使用GC發(fā)生器的類型等。回到上文的start.sh文件內容,我們來分下:

java -server -Xms4G -Xmx4G -Xmn2G -XX:SurvivorRatio=1 -XX:+UseConcMarkSweepGC -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1100 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -jar c1000k.jar&

這臺機器是一個4G內存的機器,因此:

-Xms4G 是指: JVM啟動時整個堆(包括年輕代,年老代)的初始化大小。

-Xmx4G 是指: JVM啟動時整個堆的最大值。

-Xmn2G是指:年輕代的空間大小,剩下的是年老代的空間。

-XX:SurvivorRatio=1是指:年輕代空間中2個Survivor空間與Eden空間的大小比例。此處為1:1:1,算法如下:比如整個年輕代空間為2G,如果比例為1,那么2/3,則S0/S1/Eden的空間大小是同樣的,為666M。

該值不設置,則JDK默認為比例為8,那么是1:1:8,通過上面的算法可以得出S0/S1的大小。我們可以看到官方通過增大Eden區(qū)的大小,來減少YGC發(fā)生的次數,但有時我們發(fā)現(xiàn),雖然次數減少了,但Eden區(qū)滿

的時候,由于占用的空間較大,導致釋放緩慢,此時stop-the-world的時間較長,因此需要按照程序情況去調優(yōu)。

-XX:+UseConcMarkSweepGC是指:使用GC的回收類型。這里是CMS類型,JDK1.7以后推薦使用+UseG1GC,被稱為G1類型(或Garbage First)的回收器。


2.當我們設定好start.sh的參數值后,執(zhí)行./start.sh此時就啟動了。

我們可以通過jvisualvm.exe中的Visual GC插件查看GC的圖形,我們也可以再服務器上執(zhí)行:jstat -gc 15016 1000,看到每1秒鐘java進程號為15016的GC回收情況。

[root@yxdevapp04 c1000k]# jstat -gc 15016 1000

S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT

699008.0 699008.0 29980.4 0.0 699136.0 116881.6 2097152.0 660769.4 21248.0 20071.0 354 54.272 0 0.000 54.272

699008.0 699008.0 29980.4 0.0 699136.0 118344.8 2097152.0 660769.4 21248.0 20071.0 354 54.272 0 0.000 54.272

699008.0 699008.0 29980.4 0.0 699136.0 119895.5 2097152.0 660769.4 21248.0 20071.0 354 54.272 0 0.000 54.272

699008.0 699008.0 29980.4 0.0 699136.0 121383.1 2097152.0 660769.4 21248.0 20071.0 354 54.272 0 0.000 54.272

解釋如下:

S0C 是指:Survivor0區(qū)的分配空間

S0U 是指:Survivor1區(qū)的已經使用的空間

EC是指:Eden區(qū)所使用的空間

EU是指:Eden區(qū)當前使用的空間

OC是指:老年代分配的空間

OU是指:老年代當前使用的空間

PC是指:持久待分配的空間

PU是指:持久待當前使用的空間

YGC是指:年輕代發(fā)生的次數,這里是354次

YGCT是指:年輕代發(fā)送的總時長,這里是54.272秒,因此每次年輕代發(fā)生GC,即平均每次stop-the-world的時長為54.272/354=0.153秒。

FGC是指:年老代回收的次數,或者成為FullGC的次數。

FGCT是指:年老代發(fā)生回收的總時長。

GCT是指:包括年輕代YGC及年老代FGC的總時間長。

通常結合圖形或數據,我們可以看到當EU即將等于EC的時候,此時發(fā)生YGC,因此YGC次數+1,YGCT時間增加。

經過實際的調優(yōu)測試我們發(fā)現(xiàn),當發(fā)生YGC的時候,如果S0U或S1U區(qū)如果有任意一個區(qū)域為0的時候,此時YGC的速度很快,相反如果S0U或者S1U中都有數據,或相對滿的時候,此時YGC的時間邊長,這就是因為S0/S1及Eden區(qū)的比例問題導致的。


3.經過一定時間的調優(yōu),我們基本上可以使得YGC的次數非常少,時間非常快,很長時間,數天都不會發(fā)生FGC,此時JVM的調優(yōu)算是一個好的結果。


4 .在MAC電腦上可以通過jconsole調出圖形化分析工具。


總的來說,JVM的調優(yōu)工作是一個及其復雜的過程,除了前期的準備工作,后期還需要進行一些復雜的操作。當然,本文對JVM調優(yōu)的講解只是淺嘗輒止,還有更多更全面的JVM調優(yōu)知識可以觀看本站的Java零基礎教程


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 成人欧美精品久久久久影院 | 成人午夜性a一级毛片美女 成人午夜性视频欧美成人 成人午夜亚洲影视在线观看 | 伊人俺去久久涩五月综合 | 激情综合婷婷亚洲图片 | 91极品视频在线观看 | 亚洲国产成人精品女人久久久 | 国产精品免费视频一区一 | 日本亚洲欧洲高清有码在线播放 | 国产不卡视频在线播放 | 欧美日韩激情在线一区二区 | 日本一级特黄aa大片24免费 | 亚洲精品国产第一区第二区国 | 亚洲 中文 欧美 日韩 在线人 | 国产区精品一区二区不卡中文 | 深夜福利免费 | 亚洲综合色秘密影院秘密影院 | 欧美色图一区二区 | 人做人爱视频欧美在线观看 | 日本黄色aa | 在线播放成人毛片免费视 | 久久精品*5在热 | 色黄啪啪网18以下免费进 | 一级特黄aaa大片免色 | 成人观看网站a | 欧美一级夜夜爽 视频 | 亚洲第一成年免费网站 | 国产一级特黄aa级特黄裸毛片 | 4虎最新网址 | 日本激情视频一区二区三区 | 另类av| 一级毛片免费视频日本 | 亚洲中字幕 | 青草香蕉精品视频在线观看 | 中文字幕精品在线视频 | 亚洲 欧洲 另类 综合 自拍 | 色91在线 | 日本高清免费不卡毛片 | 伊色综合久久之综合久久 | 97精品在线视频 | 看真人视频一一级毛片 | 中文字幕亚洲精品日韩精品 |