欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

JVM的那些你不可不知的參數(shù)-創(chuàng)新互聯(lián)

有的同學(xué)雖然寫(xiě)了一段時(shí)間 Java 了,但是對(duì)于 JVM 卻不太關(guān)注。有的同學(xué)說(shuō),參數(shù)都是團(tuán)隊(duì)規(guī)定好的,部署的時(shí)候也不用我動(dòng)手,關(guān)注它有什么用,而且,JVM 這東西,聽(tīng)上去就感覺(jué)很神秘很高深的樣子,還是算了吧。

專(zhuān)注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)望都免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千余家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

沒(méi)錯(cuò),部署的時(shí)候可能用不到你親自動(dòng)手,但是出現(xiàn)問(wèn)題了怎么辦,難道不用你解決問(wèn)題嗎,如果對(duì) JVM 了解不夠的話,有些問(wèn)題可能排查起來(lái)就很費(fèi)力,或者根本無(wú)法解決。

本篇以 JDK Hotspot 8 為背景,介紹一下 JVM 的常用參數(shù)。建議你在做一些小項(xiàng)目、小 demo 的時(shí)候,也把這些參數(shù)加上,加深印象。以我的經(jīng)驗(yàn)來(lái)看,有些知識(shí)你剛開(kāi)始接觸的時(shí)候會(huì)感覺(jué)很難理解,但是沒(méi)關(guān)系,萬(wàn)事開(kāi)頭難嘛,知識(shí)點(diǎn)都是需要消化時(shí)間的。第一天不理解,甚至過(guò)了一個(gè)月也不理解,但是總有那么一刻,你會(huì)突然有種茅塞頓開(kāi)的感覺(jué),感覺(jué)一下子通了。最后心里面感謝自己在多少多少天以前能夠開(kāi)始學(xué)習(xí)并堅(jiān)持學(xué)習(xí)這些知識(shí)點(diǎn)。

只介紹一些常用參數(shù),除了這些常用參數(shù)外,Hotspot 還提供了很多其他的參數(shù),每一個(gè)都值得考究。

在使用這些參數(shù)之前,你需要對(duì) Java 內(nèi)存模型有一定的了解,了解一下內(nèi)存模型。

還是要把內(nèi)存模型圖放在這里,方便理解。

JVM的那些你不可不知的參數(shù)

堆參數(shù):

-Xms: 堆的初始值,例如 -Xmx2048,初始堆大小為 2G

-Xmx: 堆的大值,例如 -Xmx2048M,允許大堆內(nèi)存 2G

-Xmn: 新生代大小

-XX:SurvivorRatio:Eden 區(qū)所占比例,默認(rèn)是 8,也就是 80%,例如 -XX:SurvivorRatio=8

JVM的那些你不可不知的參數(shù)

最好將 -Xms 和 -Xmx 的值設(shè)置成一樣的值,這樣做是為了防止隨著堆空間使用量增加,會(huì)動(dòng)態(tài)的調(diào)整堆空間大小,有一定的性能損耗,不如開(kāi)始就設(shè)置成相同的值,來(lái)規(guī)避性能損失。

棧參數(shù)

-Xss:??臻g大小,棧是線程獨(dú)占的,所以是一個(gè)線程使用??臻g的大小,例如 -Xss256K,如果不設(shè)置此參數(shù),默認(rèn)值是 1M,一般來(lái)講設(shè)置成 256K 就足夠了。

Metaspace 參數(shù)

-XX:MetaspaceSize:Metaspace 空間初始大小,如果不設(shè)置的話,默認(rèn)是20.79M,這個(gè)初始大小是觸發(fā)首次 Metaspace Full GC 的閾值,例如 -XX:MetaspaceSize=256M

-XX:MaxMetaspaceSize:Metaspace 大值,默認(rèn)不限制大小,但是線上環(huán)境建議設(shè)置,例如

-XX:MaxMetaspaceSize=256M

-XX:MinMetaspaceFreeRatio:最小空閑比,當(dāng) Metaspace 發(fā)生 GC 后,會(huì)計(jì)算 Metaspace 的空閑比,如果空閑比(空閑空間/當(dāng)前 Metaspace 大小)小于此值,就會(huì)觸發(fā) Metaspace 擴(kuò)容。默認(rèn)值是 40 ,也就是 40%,例如 -XX:MinMetaspaceFreeRatio=40

-XX:MaxMetaspaceFreeRatio:大空閑比,當(dāng) Metaspace 發(fā)生 GC 后,會(huì)計(jì)算 Metaspace 的空閑比,如果空閑比(空閑空間/當(dāng)前 Metaspace 大小)大于此值,就會(huì)觸發(fā) Metaspace 釋放空間。默認(rèn)值是 70 ,也就是 70%,例如 -XX:MaxMetaspaceFreeRatio=70

建議將 MetaspaceSize 和 MaxMetaspaceSize 設(shè)置為同樣大小,避免頻繁擴(kuò)容。

GC 日志

簡(jiǎn)單日志

-verbose:gc 或者 -XX:+PrintGC

日志格式:

[GC (Allocation Failure) 7892K->5646K(19456K), 0.0060442 secs]
[GC (Allocation Failure) , 0.0066315 secs]
[Full GC (Allocation Failure) 19302K->13646K(19456K), 0.0032698 secs]

詳細(xì)日志

#打印詳細(xì)日志
-XX:+PrintGCDetails
#打印 GC 的時(shí)間點(diǎn)
-XX:+PrintGCDateStamps

日志格式:

2019-11-13T14:06:46.099-0800: [GC (Allocation Failure) 2019-11-13T14:06:46.099-0800: [DefNew (promotion failed) : 9180K->9157K(9216K), 0.0084297 secs]2019-11-13T14:06:46.107-0800: [Tenured: 10145K->10145K(10240K), 0.0035768 secs] 13802K->13646K(19456K), [Metaspace: 3895K->3895K(1056768K)], 0.0120887 secs] [Times: user=0.00 sys=0.00, real=0.02 secs]
2019-11-13T14:06:47.243-0800: [Full GC (Allocation Failure) 2019-11-13T14:06:47.244-0800: [Tenured: 10145K->10145K(10240K), 0.0042686 secs] 19304K->19146K(19456K), [Metaspace: 3895K->3895K(1056768K)], 0.0043232 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]

以下幾個(gè) GC 日志相關(guān)的參數(shù)打印的內(nèi)容比較多,生產(chǎn)環(huán)境可選擇性開(kāi)啟,大多數(shù)時(shí)候不需要開(kāi)啟。

GC 前后的堆信息

-XX:+PrintHeapAtGC

{Heap before GC invocations=0 (full 0):
def new generation   total 9216K, used 7892K [0x00000007bec00000, 0x00000007bf600000, 0x00000007bf600000)
eden space 8192K, 96% used [0x00000007bec00000, 0x00000007bf3b5200,
xxx....
class space   used 445K, capacity 462K, committed 512K, reserved 1048576K
Heap after GC invocations=1 (full 0):
def new generation   total 9216K, used 1023K [0x00000007bec00000,
xxx...
Metaspace       used 3892K, capacity 4646K, committed 4864K, reserved 1056768K
class space   used 445K, capacity 462K, committed 512K, reserved 1048576K
}

GC 導(dǎo)致的 Stop the world 時(shí)間

-XX:+PrintGCApplicationStoppedTime

Total time for which application threads were stopped: 0.0070384 seconds, Stopping threads took: 0.0000200 seconds

加載類(lèi)信息

-verbose:class

[Loaded java.net.URLClassLoader$3$1 from /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/lib/rt.jar]

GC 前后的類(lèi)加載情況

-XX:+PrintClassHistogramBeforeFullGC
-XX:+PrintClassHistogramAfterFullGC
num     #instances         #bytes class name
----------------------------------------------
  1:           140       19016264 [B
  2:         2853         226256 [C
  3:           138         169072 [I
  4:           761         86240 java.lang.Class
  5:         2850         68400 java.lang.String
  6:           660         41024 [Ljava.lang.Object;

日志輸出到文件

以上參數(shù)配置好之后,默認(rèn)會(huì)輸出到控制臺(tái)或者服務(wù)指定的統(tǒng)一日志的位置。但是這里還會(huì)有服務(wù)的一般性信息日志、錯(cuò)誤日志等,都混在一起的話會(huì)比較亂,所以,一般都會(huì)把 jvm 日志單獨(dú)存放。

#GC 活動(dòng)日志,根據(jù)配置的參數(shù)輸出內(nèi)容
-Xloggc:/Users/fengzheng/jvmlog/gc.log
#致命錯(cuò)誤日志,只有在 jvm 發(fā)生崩潰的時(shí)候會(huì)輸出
-XX:ErrorFile=/Users/fengzheng/jvmlog/hs_err_pid%p.log

堆溢出現(xiàn)場(chǎng)保留

有些錯(cuò)誤雖然不會(huì)導(dǎo)致 jvm 崩潰,但是對(duì)于服務(wù)而言也是非常嚴(yán)重的,比如stackOverflow、OutOfMemoryError,發(fā)生錯(cuò)誤后,留存現(xiàn)場(chǎng)信息對(duì)分析錯(cuò)誤原因是至關(guān)重要的。jvm 提供了保留堆溢出現(xiàn)場(chǎng)的方法,對(duì)于 JDK 8 而言,可能是 heap 溢出,也可能是 Metasapce 溢出。

-XX:HeapDumpPath=/Users/fengzheng/jvmlog
-XX:+HeapDumpOnOutOfMemoryError

最后出現(xiàn)異常后,保存的文件格式為 java_pidxxx.hprof,pid 后面是發(fā)生溢出的進(jìn)程 id,之后可以用 VisualVM、JProfiler 等工具打開(kāi)分析。

設(shè)置垃圾回收器類(lèi)型

隨著 JDK 版本的升級(jí),可使用的垃圾收集器類(lèi)型也越來(lái)越多了。JDK 8 可使用的垃圾收集器有 7 種,當(dāng)然有點(diǎn)只適用于年輕代,有點(diǎn)只使用于老年代,JDK 8 中最新的垃圾收集器是 G1,可以用于年輕代和老年代。到了 JDK 11,還出了 ZGC。

下圖是 JDK 8 中可使用的垃圾收集器以及它們配合使用的關(guān)系。

JVM的那些你不可不知的參數(shù)

Serial、ParNew、Parallel Scavenge 只適用于年輕代,CMS、Serial Old、Parallel Old 只適用于老年代,而 G1 通用于年輕代和老年代。連線表示它們之間可配合使用的關(guān)系,其中 CMS 和 Serial Old 連線的意思是說(shuō) Serial Old 會(huì)作為 CMS 的后預(yù)案,當(dāng) CMS 發(fā)生 Concurrent Mode Failure 時(shí)啟用。

在 JDK 8 中,如果不指定垃圾收集器,默認(rèn)使用參數(shù)?-XX:+UseParallelGC,新生代使用 Parallel Scavenge,老年代使用 Serial Old。

-XX:+UseSerialGC:使用 Serial + Serial Old ,運(yùn)行于 client 模式下的默認(rèn)設(shè)置

-XX:+UseConcMarkSweepGC:使用 ParNew+CMS+Serial Old,CMS 垃圾收集器

-XX:+UseParallelGC:Parallel Scavenge + Serial Old,JDK 8 server 模式下的默認(rèn)設(shè)置

-XX:+UseParallelOldGC:Parallel Scavenge + Parallel Old

-XX:+UseG1GC:使用 G1 垃圾收集器

開(kāi)啟遠(yuǎn)程 JMX 監(jiān)控

除了日志外,當(dāng)我們需要實(shí)時(shí)查看 JVM 運(yùn)行情況的時(shí)候怎么辦,當(dāng)然可以到 JVM 所在服務(wù)器用 jstack、jmap、jinfo 等工具進(jìn)行查看,但是又不夠直觀,這時(shí)候就需要開(kāi)啟 JMX 遠(yuǎn)程功能,使用 jConsole、VisualVM 等工具進(jìn)行監(jiān)控?;蛘咦约洪_(kāi)發(fā)監(jiān)控平臺(tái)

開(kāi)啟參數(shù)如下:

-Dcom.sun.management.jmxremote
#指定 jvm 所在服務(wù)器 ip 或域名
-Djava.rmi.server.hostname=192.168.1.1
#指定端口
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.rmi.port=9999
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)站名稱(chēng):JVM的那些你不可不知的參數(shù)-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://aaarwkj.com/article38/dgoopp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶(hù)體驗(yàn)、定制網(wǎng)站搜索引擎優(yōu)化、網(wǎng)站維護(hù)品牌網(wǎng)站制作、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管
日本精品动漫一区二区三区| 亚洲欧美日韩精品av| 久久国产精品午夜亚洲欧美| 日本一区二区电影大全| 国产精品一区二区污网站| 亚洲综合一区国产精品| 全国最大成人免费视频| 色婷婷一区二区三区影片| 在线观看精品日本一区二| 日韩精品一区二区三区夜色| 亚洲成av人片一区二久久精品| 国产高清自拍视频在线一区| 日本免费高清一区二区| 国产高清不卡午夜福利| 香蕉视频欧美日韩国产| 欧美日韩一区二区三区福利| 国自产偷精品不卡在线观看| 国产高潮呻吟久久av| 日本高清中文精品在线不卡| 日本中文字幕一区二区视频 | 欧美日本国产高清不卡| 国产三级视频在线观看视频| 熟妇人妻精品一区二区| 国产精品中文字幕日韩在线| 亚洲日本韩国福利久久| 青青草免费在线视频视频| 精品一区二区三区毛卡片| 麻豆精品国产一区二区91| 农村人妻一区二区三区视频| 国内精品av在线观看| 成人深夜福利视频观看| 欧美亚洲清纯唯美另类| 国产自产一区二区三区精品| 精品欧美国产日韩在线观看| 毛茸茸的阴户在线观看| 亚洲av不卡一区二区在线观看| 成熟人妻中文字幕在线看| 亚洲日本一区二区高清在线 | 亚洲一本一道久久香蕉| 亚洲乱码一区二区av| 日韩亚洲毛片全在线播放|