国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

??
JVM參數(shù)分類 " >JVM參數(shù)分類
堆參數(shù)設(shè)置 " >堆參數(shù)設(shè)置
堆參數(shù)設(shè)置 " >堆參數(shù)設(shè)置
元空間參數(shù) " >元空間參數(shù)
???? ???? " >???? ????
棧參數(shù)設(shè)置 " >棧參數(shù)設(shè)置
??? ???? ?? " >??? ???? ??
GC ?? ???? ?? " >GC ?? ???? ??
Dump異??煺?/span> " >Dump異??煺?/span>
8G內(nèi)存的服務(wù)器該如何設(shè)置 " >8G內(nèi)存的服務(wù)器該如何設(shè)置
項(xiàng)目中,GC日志配置 " >項(xiàng)目中,GC日志配置
? Java Java??? ??? Meituan ???: ????? ??? JVM ?? ????? ?????? ??? ?? ??????!

Meituan ???: ????? ??? JVM ?? ????? ?????? ??? ?? ??????!

Aug 24, 2023 pm 03:25 PM
JVM ??? JVM ??


Meituan ???: ????? ??? JVM ?? ????? ?????? ??? ?? ??????!
img

??? JVM????? ???? ?? ????? ?????. JVM調(diào)優(yōu)常用的一些參數(shù)。

X或者XX開頭的都是非標(biāo)準(zhǔn)化參數(shù)

Meituan ???: ????? ??? JVM ?? ????? ?????? ??? ?? ??????!

意思就是說標(biāo)準(zhǔn)化參數(shù)不會(huì)變,非標(biāo)準(zhǔn)化參數(shù)可能在每個(gè)JDK版本中有所變化,但是就目前來看X開頭的非標(biāo)準(zhǔn)化的參數(shù)改變的也是非常少。

格式:-XX:[+-]<name> 表示啟用或者禁用name屬性。
例子:-XX:+UseG1GC(表示啟用G1垃圾收集器)

-XX:+PrintCommandLineFlags查看當(dāng)前JVM

? ???? ?? ?? ???? ????? ???? ???? ??, ????? ?? ????? ? JDK ???? ????? ???? ???? X? ???? ??? ????? ?? ???? ?????. ??
-Xms10M -Xmx10M -Xmn2M -XX:SurvivorRatio=8 -XX:+HeapDumpOnOutOfMemoryError 
-XX:HeapDumpPath=D:\study\log_hprof\gc.hprof
??-XX:+PrintCommandLineFlags?? ??JVM ?? ???? ??: ??
Meituan ???: ????? ??? JVM ?? ????? ?????? ??? ?? ??????!

JVM參數(shù)分類

根據(jù)JVM參數(shù)開頭可以區(qū)分參數(shù)類型,共三類:“-"、" -X”、“-XX</ code>”,<code style="font-size: 14px;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(239, 112, 96);">JVM參數(shù)開頭可以區(qū)分參數(shù)類型,共三類:“-”、“-X”、“-XX”,

標(biāo)準(zhǔn)參數(shù)(-):所有的JVM實(shí)現(xiàn)都必須實(shí)現(xiàn)這些參數(shù)的功能,而且向后兼容;

例子:-verbose:class,-verbose:gc-verbose:jni……

非標(biāo)準(zhǔn)參數(shù)(-X):默認(rèn)jvm實(shí)現(xiàn)這些參數(shù)的功能,但是并不保證所有jvm實(shí)現(xiàn)都滿足,且不保證向后兼容;

例子:Xms20m-Xmx20m,-Xmn20m-Xss128k……

標(biāo)準(zhǔn)參數(shù)(-):所有的JVM實(shí)現(xiàn)島必須實(shí)現(xiàn)這些參數(shù)的功能,而且向后兼容;

例子:-verbose:class,-verbose:gc-verbose:jni…足,且不保證向后兼容; ????例子:<code style="font-size: 14px;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px; background-color: rgba (27, 31, 35, 0.05);?? ??: "Operator Mono", Consolas, Monaco, Menlo, monospace;?? ???: break-all;??: rgb(239, 112, 96);">Xms20m< /code>,<code style="font-size: 14px;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px; background-color: rgba(27, 31, 35, 0.05);font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(239, 112, 96);">-Xmx20m,-Xmn20m-Xss128k…各個(gè)jvm實(shí)現(xiàn)會(huì)有所不同,將來可能會(huì)隨時(shí)取消,需要慎重使用;??<p data-tool="mdnice編輯器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;">例子:<code style="font-size: 14px;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px; background-color: rgba(27, 31, 35, 0.05 );font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(239, 112, 96);">-XX:+PrintGCDetails, -XX:-UseParallelGC,-XX:+PrintGCTimeStamps……-XX:+PrintGCDetails-XX:-UseParallelGC,-XX:+PrintGCTimeStamps……

堆參數(shù)設(shè)置

-Xms 初始堆大小,ms是memory start的簡稱 ,等價(jià)于-XX:InitialHeapSize-Xmx 最大堆大小,mx是memory max的簡稱 ,等價(jià)于參數(shù)-XX:MaxHeapSize

注意:在通常情況下,服務(wù)器項(xiàng)目在運(yùn)行過程中,堆空間會(huì)不斷的收縮與擴(kuò)張,勢必會(huì)造成不必要的系統(tǒng)壓力。

所以在生產(chǎn)環(huán)境中,JVMXmsXmx要設(shè)置成大小一樣的,能夠避免GC

堆參數(shù)設(shè)置

-Xms 初始堆大小,ms是memory start的簡稱 ,等價(jià)于-XX:InitialHeapSize-Xmx 最大堆大小,mx是memory max的簡稱 ,等價(jià)于參數(shù)-XX:MaxHeapSize??

?? ??: 服常情況下, 服務(wù)器項(xiàng)目在運(yùn)行過程中,堆空間會(huì)不斷的收縮與擴(kuò)張, 勢必會(huì)造成不必要的系統(tǒng)壓力。??

所以在生產(chǎn)環(huán)境中,JVM?Xms ?Xmx要設(shè)置成大小一樣的,能夠避免GC? ? ?? ??? ? ????.??

-XX:NewSize=n ?? ?? ?? ??-XX:NewRatio=n Young Generation? Old Generation? ??? ?????. -XX:NewSize=n 設(shè)置年輕代大小-XX:NewRatio=n 設(shè)置年輕代和年老代的比值。

如:-XX:NewRatio=3,表示年輕代與年老代比值為1:3,年輕代占整個(gè)年輕代年老代和的1/4,默認(rèn)新生代和老年代的比例=1:2。-XX:SurvivorRatio=n 年輕代中Eden區(qū)與兩個(gè)Survivor區(qū)的比值。

注意Survivor區(qū)有兩個(gè),默認(rèn)是8,表示:Eden:S0:S1=8:1:1

如:-XX:SurvivorRatio=3,表示Eden:Survivor=3:2,一個(gè)Survivor區(qū)占整個(gè)年輕代的1/5。

元空間參數(shù)

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

?:-XX:NewRatio=3</ code >? Young ??? Old ??? ??? <code style="font-size: 14px;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px; ?? ??: rgba(27, 31, 35, 0.05); ?? ??: "Operator Mono", Consolas, Monaco, Menlo, monospace; ?? ???: break-all; ??: rgb(239, 112, 96) ;">1: 3, ?? ??? ?? ?? ??? ?? ??? 1/4? ????, ??? ? ???? ?? ??=1:2. -XX:SurvivorRatio=n ?? ?? ? ?? ??? ??? ?? ?? ??? ?????. ????? ?? ??? ??? ??? ???? 8???. ?, Eden:S0:S1=8:1:1?????: -XX:SurvivorRatio=3, ?? Eden: Survivor=3:2, Survivor ??? ?? ?? ??? 1/5? ?????. ??

???? ????

??-XX:MetaspaceSizeMetaspace ??? ?? ?????. ???? ?? ?? ???? 20.79M???. ? ?? ??? ?? ??? ? Metaspace Full GC ? ??. ??

例如:-XX:MetaspaceSize=256M -XX:MetaspaceSize=256M

-XX:MaxMetaspaceSizeMetaspace 最大值,默認(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

-XX:MaxMetaspaceSize?? ?? 最大值,默認(rèn)不限???,但是線上環(huán)境建議設(shè)置。????例如:-XX:MaxMetaspaceSize=256M????-XX:MinMetaspaceFreeRatio:最小空閑比,當(dāng) ?????? 發(fā)生 GC 后,會(huì)計(jì)算 ???? ? ?? ??: 14px; ??: 2px 4px; ??? ??: 4px; ?? ???: 2px; ?? ??: 2px; ???: rgba(27, 31, 35, 0.05); ?? ??: "Operator Mono" , Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(239, 112, 96);">?????? 大小)小于此值,就會(huì)觸發(fā) ?????? 擴(kuò)容。默認(rèn)值是 40 ,也就是 40%,例如 - XX:MinMetaspaceFreeRatio=40????-XX:MaxMetaspaceFreeRatio:最大空閑比,當(dāng) ????發(fā)生 GC 后,會(huì)計(jì)算 ?????? ??閑比,如果?閑比(????間/當(dāng)前 Metaspace 大小)大于此值,就會(huì)觸發(fā) ???? 釋放空間。默認(rèn)值是 70 ,也就是 70%,例如 -XX:MaxMetaspaceFreeRatio=70??

MetaspaceSizeMaxMetaspaceSize設(shè)置為同樣大小,避免頻繁擴(kuò)容。

棧參數(shù)設(shè)置

-Xss:??臻g大小,棧是線程獨(dú)占的,所以是一個(gè)線程使用??臻g的大小。

例如:-Xss256K,如果不設(shè)置此參數(shù),默認(rèn)值是1M,一般來講設(shè)置成 256K?? ????? ?????.

??? ???? ??

?? ??? ???(???)

???: -XX:+UseSerialGC ??: -XX:-UseSerialGC //???? Serial? ???? ???? SerialOld? ?????

ParNew ??? ???(???)

Enable -XX:+UseParNewGC -XX:-UseParNewGC ?? //???? ParNew ??? ???? ???? CMS

Parallel Scavenge Collector(???) ??? ?????

-XX:+UseParallelOldGC ??? -XX:-UseParallelOldGC ?? //??? ??? Parallel Scavenge ??? ?????. Old ??? Parallel Old Collector

ParallelOl ??? ???(?? ??)

enable -XX:+UseParallelGC? ?????. -XX:-UseParallelGC ?? //??? ??? Parallel Scavenge ??? ?????. Old ??? Parallel Old Collector

CMS ??? ???(?? ??)

enable -XX:+UseConcMarkSweepGC? ?????. -XX:-UseConcMarkSweepGC

G1 ??? ???

?? -XX:+UseG1GC ?? -XX:-UseG1GC

GC ?? ???? ??

GC ?? ?? ??? ?? ??? ???? ? ??? ???? ?? ?? ??? ??? ? ??? ??? ????? ?????

-XX: MaxGCPauseMillis

GC? ????? ? ?? ??? ?? ??? ????? Java ? ?? ??????. ?? ???? ?? Java ?? 45%???

-XX:InitiatingHeapOccupancyPercent=n

???? ??? ? ?? ?? ? ?? ??? ?? Old Generation? ?? ?????. .0? ??? ??? ?????.

-XX:PretenureSizeThreshold=1000000 //

Old Generation? ?? GC Age? ???? Young Generation ??? Old Generation ??? ?? Age ??? ?????. ???? 7

-XX: InitialTenuringThreshol=7

Old Generation? ????????. age, ???? 15

-XX :MaxTenuringThreshold

GC ?? ?? ??? ?

-XX:ParallelGCThreads=16

System.gc()? ???????. ? ???? ????? FGC? ????? ????? UseG1GC ? UseConcMarkSweepGC? ????? ??? ?? ? ???? ????? ? ????.

-XX:-+DisableExplicitGC

??? ?? ??, ???? 99

XX:GCTimeRatio

??? ??, ? ??? ??, ?? ???? ?? ??? ?????. ?? ????? ???? ?????. ???? ?? ?? ?? ?? ??? ?????.

XX:UseAdaptiveSizePolicy

???? ?? ??? ???? GC ??? ?? ??

GCTimeRatio

Dump異常快照

-XX:+HeapDumpOnOutOfMemoryError

-XX:HeapDumpPath

堆內(nèi)存出現(xiàn)OOM的概率是所有內(nèi)存耗盡異常中最高的,出錯(cuò)時(shí)的堆內(nèi)信息對(duì)解決問題非常有幫助。

所以給JVM設(shè)置這個(gè)參數(shù)(-XX:+HeapDumpOnOutOfMemoryError),讓JVM遇到OOM異常時(shí)能輸出堆內(nèi)信息,并通過(-XX:+HeapDumpPath)參數(shù)設(shè)置堆內(nèi)存溢出快照輸出的文件地址。

這對(duì)于特別是對(duì)相隔數(shù)月才出現(xiàn)的OOM異常尤為重要。

-Xms10M -Xmx10M -Xmn2M -XX:SurvivorRatio=8 -XX:+HeapDumpOnOutOfMemoryError 
-XX:HeapDumpPath=D:\study\log_hprof\gc.hprof

-XX:OnOutOfMemoryError

表示發(fā)生OOM后,運(yùn)行jconsole.exe程序。

這里可以不用加“”,因?yàn)?code style="font-size: 14px;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(239, 112, 96);">jconsole.exe路徑Program Files含有空格。利用這個(gè)參數(shù),我們可以在系統(tǒng)OOM后,自定義一個(gè)腳本,可以用來發(fā)送郵件告警信息,可以用來重啟系統(tǒng)等等。

-XX:OnOutOfMemoryError="C:\Program Files\Java\jdk1.8.0_151\bin\jconsole.exe"

8G內(nèi)存的服務(wù)器該如何設(shè)置

java -Xmx3550m -Xms3550m -Xss128k -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxPermSize=16m -XX:MaxTenuringThreshold=0

-Xmx3500m 設(shè)置JVM最大可用內(nèi)存為3550M。

-Xms3500m 設(shè)置JVM初始內(nèi)存為3550m。此值可以設(shè)置與-Xmx相同,以避免每次垃圾回收完成后JVM重新分配內(nèi)存。-Xmn2g 設(shè)置年輕代大小為2G。

整個(gè)堆大小=年輕代大小 + 年老代大小 + 方法區(qū)大小

-Xss128k 設(shè)置每個(gè)線程的堆棧大小。

JDK1.5以后每個(gè)線程堆棧大小為1M,以前每個(gè)線程堆棧大小為256K。更具應(yīng)用的線程所需內(nèi)存大小進(jìn)行調(diào)整。在相同物理內(nèi)存下,減小這個(gè)值能生成更多的線程。但是操作系統(tǒng)對(duì)一個(gè)進(jìn)程內(nèi)的線程數(shù)還是有限制的,不能無限生成,經(jīng)驗(yàn)值在3000~5000左右。

-XX:NewRatio=4 設(shè)置年輕代(包括Eden和兩個(gè)Survivor區(qū))與年老代的比值(除去持久代)。設(shè)置為4,則年輕代與年老代所占比值為1:4,年輕代占整個(gè)堆棧的1/5 。

-XX:SurvivorRatio=4 設(shè)置年輕代中Eden區(qū)與Survivor區(qū)的大小比值。

設(shè)置為4,則兩個(gè)Survivor區(qū)與一個(gè)Eden區(qū)的比值為2:4,一個(gè)Survivor區(qū)占整個(gè)年輕代的1/6 -XX:MaxPermSize=16m 設(shè)置持久代大小為16m。

-XX:MaxTenuringThreshold=0 設(shè)置垃圾最大年齡。

如果設(shè)置為0的話,則年輕代對(duì)象不經(jīng)過Survivor區(qū),直接進(jìn)入年老代。對(duì)于年老代比較多的應(yīng)用,可以提高效率。如果將此值設(shè)置為一個(gè)較大值,則年輕代對(duì)象會(huì)在Survivor區(qū)進(jìn)行多次復(fù)制,這樣可以增加對(duì)象在年輕代的存活時(shí)間,增加在年輕代即被回收的概論。

項(xiàng)目中,GC日志配置

比如,我們啟動(dòng)一個(gè)user-service項(xiàng)目:

 java  
 -XX:+PrintGCDetails -XX:+PrintGCDateStamps 
 -XX:+UseGCLogFileRotation 
 -XX:+PrintHeapAtGC -XX:NumberOfGCLogFiles=5  
 -XX:GCLogFileSize=20M    
 -Xloggc:/opt/user-service-gc-%t.log  
 -jar user-service-1.0-SNAPSHOT.jar

參數(shù)解釋:

 -Xloggc:/opt/app/ard-user/user-service-gc-%t.log   設(shè)置日志目錄和日志名稱
 -XX:+UseGCLogFileRotation           開啟滾動(dòng)生成日志
 -XX:NumberOfGCLogFiles=5            滾動(dòng)GC日志文件數(shù),默認(rèn)0,不滾動(dòng)
 -XX:GCLogFileSize=20M               GC文件滾動(dòng)大小,需開啟UseGCLogFileRotation
 -XX:+PrintGCDetails                 開啟記錄GC日志詳細(xì)信息(包括GC類型、各個(gè)操作使用的時(shí)間),并且在程序運(yùn)行結(jié)束打印出JVM的內(nèi)存占用情況
 -XX:+ PrintGCDateStamps             記錄系統(tǒng)的GC時(shí)間           
 -XX:+PrintGCCause                   產(chǎn)生GC的原因(默認(rèn)開啟)

項(xiàng)目中沒用過怎么辦?

對(duì)于很多沒用過的人來說,面試官問項(xiàng)目中這些參數(shù)是怎么用?此時(shí),很容易選擇妥協(xié),傻傻的回答沒用過。

偷偷的告訴你,很多面試官也沒有用過。

另外,你可以自己搞個(gè)小項(xiàng)目,把JVM參數(shù)設(shè)置小點(diǎn),使用測試工具JMeter,多線程測試一下。

? ??? Meituan ???: ????? ??? JVM ?? ????? ?????? ??? ?? ??????!? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? ????? ??
? ?? ??? ????? ???? ??? ??????, ???? ?????? ????. ? ???? ?? ???? ?? ??? ?? ????. ???? ??? ???? ???? ??? ?? admin@php.cn?? ?????.

? AI ??

Undresser.AI Undress

Undresser.AI Undress

???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover

AI Clothes Remover

???? ?? ???? ??? AI ?????.

Video Face Swap

Video Face Swap

??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

???

??? ??

???++7.3.1

???++7.3.1

???? ?? ?? ?? ???

SublimeText3 ??? ??

SublimeText3 ??? ??

??? ??, ???? ?? ????.

???? 13.0.1 ???

???? 13.0.1 ???

??? PHP ?? ?? ??

???? CS6

???? CS6

??? ? ?? ??

SublimeText3 Mac ??

SublimeText3 Mac ??

? ??? ?? ?? ?????(SublimeText3)

???

??? ??

??? ????
1601
29
PHP ????
1502
276
???