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

Inhaltsverzeichnis
JVM參數分類 " > JVM參數分類
堆參數設置 " >堆參數設置
元空間參數 " >元空間參數
Metaspace-Parameter " >Metaspace-Parameter
棧參數設置 " >棧參數設置
Collector-Parametereinstellungen " >Collector-Parametereinstellungen
GC-Strategieparameterkonfiguration " >GC-Strategieparameterkonfiguration
Dump異??煺?/span> " >Dump異常快照
8G內存的服務器該如何設置 " >8G內存的服務器該如何設置
項目中,GC日志配置 " >項目中,GC日志配置
Heim Java JavaInterview Fragen Meituan-Interview: Mit welchen JVM-Tuning-Parametern bin ich vertraut?

Meituan-Interview: Mit welchen JVM-Tuning-Parametern bin ich vertraut?

Aug 24, 2023 pm 03:25 PM
JVM -Optimierung JVM -Anruf


Meituan-Interview: Mit welchen JVM-Tuning-Parametern bin ich vertraut?
img

Machen wir uns heute damit vertraut, ungef?hrJVMOptimieren Sie einige h?ufig verwendete Parameter. JVM調優(yōu)常用的一些參數。

X或者XX開頭的都是非標準化參數

Meituan-Interview: Mit welchen JVM-Tuning-Parametern bin ich vertraut?

意思就是說標準化參數不會變,非標準化參數可能在每個JDK版本中有所變化,但是就目前來看X開頭的非標準化的參數改變的也是非常少。

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

-XX:+PrintCommandLineFlags查看當前JVM

Dinge, die beginnen mit Es wird gesagt, dass sich die standardisierten Parameter nicht ?ndern und die nicht standardisierten Parameter in jedem JDK-Version, aber bisher haben sich die nicht standardisierten Parameter, die mit X beginnen, nur sehr wenig ge?ndert. ??
-Xms10M -Xmx10M -Xmn2M -XX:SurvivorRatio=8 -XX:+HeapDumpOnOutOfMemoryError 
-XX:HeapDumpPath=D:\study\log_hprof\gc.hprof
??-XX:+PrintCommandLineFlagsView Current<img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/001/273/727/d63fc363fa710c707d1e38539968540e-2.png" class="lazy"/ alt="Meituan-Interview: Mit welchen JVM-Tuning-Parametern bin ich vertraut?" ></figure><h2 id="span-style-display-inline-block-background-rgb-color-rgb-padding-px-px-px-border-top-right-radius-px-border-top-left-radius-px-margin-right-px-JVM參數分類-span-span-style-display-inline-block-vertical-align-bottom-border-bottom-px-solid-efebe-border-right-px-solid-transparent-span"><span style="display: inline-block;background: rgb(239, 112, 96);color: rgb(255, 255, 255);padding: 3px 10px 1px;border-top-right-radius: 3px;border-top-left-radius: 3px;margin-right: 3px;"> JVM參數分類</span><span style="display: inline-block;vertical-align: bottom;border-bottom: 36px solid #efebe9;border-right: 20px solid transparent;"> </span></h2><p data-tool="mdnice編輯器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;">根據Farbe: rgba(27, 31, 35, 0.05);Schriftfamilie: ?Operator Mono“, Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(239, 112, 96);“ >JVM參數開頭可以區(qū)分參數類型, 共三類:“-”、“-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參數開頭可以區(qū)分參數類型,共三類:“-”、“-X”、“-XX”,

標準參數(-):所有的JVM實現都必須實現這些參數的功能,而且向后兼容;

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

非標準參數(-X):默認jvm實現這些參數的功能,但是并不保證所有jvm實現都滿足,且不保證向后兼容;

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

標準參數(-):所有的JVM實現都必須實現這些參數的功能,而且向后兼容;

例子::-verbose:class,-verbose:gc,-verbose:jni……有jvm實現都滿足,且不保證向后兼容;????例子:-Xmn20m-Xss128k……????非Stable參數(-XX):此類參數各個jvm實現會有所不同, 將來可能會隨時取消, 需要慎重使用;??

例子:-XX:+PrintGCDetails, -XX:-UseParallelGC,-XX:+PrintGCTimeStamps……-XX:+PrintGCDetails,-XX:-UseParallelGC-XX:+PrintGCTimeStamps……

堆參數設置

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

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

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

堆參數設置

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

注意:在通常情況下, 服務器項目在運行過程中, 堆空間會不斷的收縮與擴張, 勢必會造成不必要的系統(tǒng)壓力.??

所以在生產環(huán)境中,JVMXmsXmx要設置成大小一樣的,能夠避免GC在調整堆大小帶來的不必要的壓力.??

-XX:NewSize=n Einstellungen Gr??e der jungen Generation-XX:NewRatio=n Legen Sie das Verh?ltnis zwischen junger und alter Generation fest. -XX:NewSize=n 設置年輕代大小-XX:NewRatio=n 設置年輕代和年老代的比值。

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

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

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

元空間參數

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

Zum Beispiel:-XX:NewRatio=3</ Code >, was angibt, dass das Verh?ltnis zwischen der jungen Generation und der alten Generation <code style="font-size: 14px;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px; Hintergrundfarbe: RGBA (27, 31, 35, 0,05);Schriftfamilie: ?Operator Mono“, Consolas, Monaco, Menlo, Monospace;Wortumbruch: Break-All;Farbe: RGB(239, 112, 96) ;">1: 3, die junge Generation macht 1/4 der gesamten jungen und alten Generation aus, Standardverh?ltnis der neuen Generation zur alten Generation=1:2. -XX:SurvivorRatio=n Junge Generation Die Verh?ltnis des Eden-Gebiets zu den beiden Survivor-Gebieten. ????Beachten Sie, dass es zwei Survivor-Bereiche gibt. Der Standardwert ist 8, was bedeutet: Eden:S0:S1=8:1:1????Zum Beispiel: -XX:SurvivorRatio=3, was bedeutet: Eden: Survivor=3:2, ein Survivor-Bereich macht 1/5 der gesamten jungen Generation aus. ??

Metaspace-Parameter

??-XX:MetaspaceSizeMetaspace Die anf?ngliche Gr??e des Leerzeichens. Wenn nicht festgelegt, ist der Standardwert 20,79 MB. Diese anf?ngliche Gr??e ist die Beim ersten Mal wird es ausgel?st. 35, 0,05);font -family: ?Operator Mono“, Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(239, 112, 96);">Metaspace Full GC 's Schwelle. ??

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

-XX:MaxMetaspaceSizeMetaspace 最大值,默認不限制大小,但是線上環(huán)境建議設置。

例如:-XX:MaxMetaspaceSize=256M

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

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

-XX:MaxMetaspaceSize-XX:MaxMetaspaceSize=256M????-XX:MinMetaspaceFreeRatio:最小空閑比,當 Metaspace 發(fā)生 GC 后,會計算 Metaspace 的空閑比,如果空閑比(空閑空間/當前 Metaspace 大小)小于此值,就會觸發(fā) Metaspace 擴容。默認值是 40,也就是 40%,例如 - XX:MinMetaspaceFreeRatio=40????-XX:MaxMetaspaceFreeRatio:最大空閑比,當 Metaspace發(fā)生 GC 后,會計算 Metaspace 釋放空間。默認值是 70,也就是 70%,例如 -XX:MaxMetaspaceFreeRatio=70??

Es wird empfohlen, dass MetaspaceSizeMaxMetaspaceSize設置為同樣大小,避免頻繁擴容。

棧參數設置

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

例如:-Xss256K,如果不設置此參數,默認值是1M,一般來講設置成 256K ausreicht.

Collector-Parametereinstellungen

Serieller Garbage Collector (neue Generation)

Aktivieren: -XX:+UseSerialGC Deaktivieren Sie: -XX:-UseSerialGC //Die neue Generation verwendet Serial und die alte Generation verwendet SerialOld

ParNew Garbage Collector (neue Generation)

Enable -XX:+UseParNewGC Deaktivieren Sie -XX:-UseParNewGC //Die neue Generation verwendet die Funktion ParNew und die alte Generation verwendet die Funktion CMS

Parallel Scavenge Collector (neue Generation)

Enable -XX:+UseParallelOldGC Deaktivieren Sie -XX:-UseParallelOldGC //Die neue Generation verwendet die Funktion Parallel Scavenge. Die alte Generation verwendet den Parallel Old Collector

ParallelOl Garbage Collector (alte Generation)

enable -XX:+UseParallelGC Deaktivieren Sie -XX:-UseParallelGC //Die neue Generation verwendet die Funktion Parallel Scavenge. Die alte Generation verwendet den Parallel Old Collector

CMS Garbage Collector (alte Generation)

enable -XX:+UseConcMarkSweepGC Schalten Sie -XX:-UseConcMarkSweepGC

G1 Garbage Collector

Turn on -XX:+UseG1GC aus Deaktivieren Sie -XX:-UseG1GC

GC-Strategieparameterkonfiguration

GC-Pausenzeit. Der Garbage Collector wird versuchen, diese Zeit mit verschiedenen Mitteln zu erreichen, z. B. durch Reduzierung der jungen Generation

-XX: MaxGCPauseMillis

Der Anteil des belegten Heaps, der GC ausl?st, ist der Java-Heap-Belegungsschwellenwert, der den Markierungszyklus ausl?st. Die Standardbelegungsrate betr?gt 45 % des gesamten Java-Heaps

-XX:InitiatingHeapOccupancyPercent=n

Das gr??te Objekt, das die neue Generation aufnehmen kann, wird direkt der alten Generation zugewiesen . 0 bedeutet keine Begrenzung.

-XX:PretenureSizeThreshold=1000000 //

Geben Sie das Mindest-GC-Alter der alten Generation ein und konvertieren Sie die Objekte der jungen Generation in den Mindestalterwert der Objekte der alten Generation. Der Standardwert ist 7

-XX: InitialTenuringThreshol=7

Upgrade der alten Generation Alter, der Maximalwert betr?gt 15

-XX :MaxTenuringThreshold

Anzahl der parallelen GC-Ausführungsthreads

-XX:ParallelGCThreads=16

Deaktivieren Sie System.gc(), da diese Methode standardm??ig FGC ausl?st und ignoriert UseG1GC und UseConcMarkSweepGC in den Parametern, sodass Sie diese Methode bei Bedarf deaktivieren k?nnen.

-XX:-+DisableExplicitGC

Stellen Sie die Durchsatzgr??e ein, der Standardwert ist 99

XX:GCTimeRatio

Aktivieren Sie die adaptive Strategie, das Verh?ltnis jedes Bereichs und das Alter der Bef?rderung zur alten Generation und andere Parameter werden automatisch angepasst. Um ein Gleichgewicht zwischen Durchsatz und Pausenzeit zu erreichen.

XX:UseAdaptiveSizePolicy

Legen Sie den Prozentsatz der GC-Zeit fest, der von der Programmlaufzeit belegt wird

GCTimeRatio

Dump異??煺?/span>

-XX:+HeapDumpOnOutOfMemoryError

-XX:HeapDumpPath

堆內存出現OOM的概率是所有內存耗盡異常中最高的,出錯時的堆內信息對解決問題非常有幫助。

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

這對于特別是對相隔數月才出現的OOM異常尤為重要。

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

-XX:OnOutOfMemoryError

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

這里可以不用加“”,因為jconsole.exe路徑Program Files含有空格。利用這個參數,我們可以在系統(tǒng)OOM后,自定義一個腳本,可以用來發(fā)送郵件告警信息,可以用來重啟系統(tǒng)等等。

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

8G內存的服務器該如何設置

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

-Xmx3500m 設置JVM最大可用內存為3550M。

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

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

-Xss128k 設置每個線程的堆棧大小。

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

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

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

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

-XX:MaxTenuringThreshold=0 設置垃圾最大年齡。

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

項目中,GC日志配置

比如,我們啟動一個user-service項目:

 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

參數解釋:

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

項目中沒用過怎么辦?

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

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

另外,你可以自己搞個小項目,把JVM參數設置小點,使用測試工具JMeter,多線程測試一下。

Das obige ist der detaillierte Inhalt vonMeituan-Interview: Mit welchen JVM-Tuning-Parametern bin ich vertraut?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1502
276