日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
你需要知道的JVM參數(shù)都在這里

你需要知道的 JVM 參數(shù)都在這里

作者: 指北君 2021-12-09 08:16:40

云計(jì)算

虛擬化 JVM參數(shù)有很多,其實(shí)我們直接使用默認(rèn)的JVM參數(shù),不去修改都可以滿足大多數(shù)情況。但是如果你想在有限的硬件資源下,部署的系統(tǒng)達(dá)到最大的運(yùn)行效率,那么進(jìn)行相關(guān)的JVM參數(shù)設(shè)置是必不可少的。下面我們就來對(duì)這些JVM參數(shù)進(jìn)行詳細(xì)的介紹。

成都創(chuàng)新互聯(lián)專注于綏棱企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),商城網(wǎng)站制作。綏棱網(wǎng)站建設(shè)公司,為綏棱等地區(qū)提供建站服務(wù)。全流程按需搭建網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

本文轉(zhuǎn)載自微信公眾號(hào)「Java技術(shù)指北」,作者指北君。轉(zhuǎn)載本文請(qǐng)聯(lián)系Java技術(shù)指北公眾號(hào)。

哈嘍,大家好,我是指北君。

上一篇文章我們介紹了各種垃圾收集器,包括

新生代垃圾收集器:Serial、ParNew、Parallel Scavenge;

老年代垃圾收集器:Serial Old(MSC)、Parallel Old、CMS;

整堆:G1

最后介紹了最強(qiáng)的垃圾收集器:ZGC。

那么本篇文章我們就來給大家介紹這些垃圾收集器的 JVM 參數(shù)配置。

JVM參數(shù)有很多,其實(shí)我們直接使用默認(rèn)的JVM參數(shù),不去修改都可以滿足大多數(shù)情況。但是如果你想在有限的硬件資源下,部署的系統(tǒng)達(dá)到最大的運(yùn)行效率,那么進(jìn)行相關(guān)的JVM參數(shù)設(shè)置是必不可少的。下面我們就來對(duì)這些JVM參數(shù)進(jìn)行詳細(xì)的介紹。JVM參數(shù)主要分為以下三種(可以根據(jù)書寫形式來區(qū)分):

一、標(biāo)準(zhǔn)參數(shù)

標(biāo)準(zhǔn)參數(shù),顧名思義,標(biāo)準(zhǔn)參數(shù)中包括功能以及輸出的結(jié)果都是很穩(wěn)定的,基本上不會(huì)隨著JVM版本的變化而變化。

我們可以通過 -help 命令來檢索出所有標(biāo)準(zhǔn)參數(shù)。

關(guān)于這些命令的詳細(xì)解釋,可以參考官網(wǎng):https://docs.oracle.com/javase/7/docs/technotes/tools/solaris/java.html

-help 也是一個(gè)標(biāo)準(zhǔn)參數(shù),再比如使用比較多的 -version也是。

①、-version

顯示Java的版本信息。

二、X 參數(shù)

對(duì)應(yīng)前面講的標(biāo)準(zhǔn)化參數(shù),這是非標(biāo)準(zhǔn)化參數(shù)。表示在將來的JVM版本中可能會(huì)發(fā)生改變,但是這類以 -X開始的參數(shù)變化的比較小。

我們可以通過 Java -X 命令來檢索所有-X 參數(shù)。

關(guān)于這些參數(shù)的介紹,其實(shí)上圖的中文解釋很清楚了,這里我們不作過多的介紹。

三、XX參數(shù)

這是我們?nèi)粘i_發(fā)中接觸到最多的參數(shù)類型。這也是非標(biāo)準(zhǔn)化參數(shù),相對(duì)來說不穩(wěn)定,隨著JVM版本的變化可能會(huì)發(fā)生變化,主要用于JVM調(diào)優(yōu)和debug。

注意:這種參數(shù)是我們后續(xù)介紹JVM調(diào)優(yōu)講解最多的參數(shù)。

該參數(shù)的書寫形式又分為兩大類:

①、Boolean類型 格式:-XX:[+-]表示啟用或者禁用name屬性。

例子:-XX:+UseG1GC(表示啟用G1垃圾收集器)

②、Key-Value類型 格式:-XX:=表示name的屬性值為value。

例子:-XX:MaxGCPauseMillis=500(表示設(shè)置GC的最大停頓時(shí)間是500ms)

四、參數(shù)詳解

1、打印已經(jīng)被用戶或者當(dāng)前虛擬機(jī)設(shè)置過的參數(shù)

  
 
 
 
  1. -XX:+PrintCommandLineFlags 

比如:

2、最大堆和最小堆內(nèi)存設(shè)置

-Xms512M:設(shè)置堆內(nèi)存初始值為512M

-Xmx1024M:設(shè)置堆內(nèi)存最大值為1024M

這里的ms是memory start的簡(jiǎn)稱,mx是memory max的簡(jiǎn)稱,分別代表最小堆容量和最大堆容量。但是別看這里是-X參數(shù),其實(shí)這是-XX參數(shù),等價(jià)于:

-XX:InitialHeapSize

-XX:MaxHeapSize

在通常情況下,服務(wù)器項(xiàng)目在運(yùn)行過程中,堆空間會(huì)不斷的收縮與擴(kuò)張,勢(shì)必會(huì)造成不必要的系統(tǒng)壓力。所以在生產(chǎn)環(huán)境中,JVM的Xms和Xmx要設(shè)置成一樣的,能夠避免GC在調(diào)整堆大小帶來的不必要的壓力。

3、Dump異常快照以及以文件形式導(dǎo)出

-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異常尤為重要。

這兩個(gè)參數(shù)通常配套使用:

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./

4、發(fā)送OOM后,執(zhí)行一個(gè)腳本

-XX:OnOutOfMemoryError

比如這樣設(shè)置:

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

表示發(fā)生OOM后,運(yùn)行jconsole.exe程序。這里可以不用加“”,因?yàn)閖console.exe路徑Program Files含有空格。

利用這個(gè)參數(shù),我們可以在系統(tǒng)OOM后,自定義一個(gè)腳本,可以用來發(fā)送郵件告警信息,可以用來重啟系統(tǒng)等等。

五、打印gc信息

①、打印GC簡(jiǎn)單信息

-verbose:gc

-XX:+PrintGC

一個(gè)是標(biāo)準(zhǔn)參數(shù),一個(gè)是-XX參數(shù),都是打印詳細(xì)的gc信息。通常會(huì)打印如下信息:

比如第一行,表示GC回收之前有12195K的內(nèi)存,回收之后剩余1088K,總共內(nèi)存為125951K

②、打印詳細(xì)GC信息

-XX:+PrintGCDetails

-XX:+PrintGCTimeStamps

六、指定GC日志以文件輸出

-Xloggc:./gc.log

這個(gè)在參數(shù)用于將gc日志以文件的形式輸出,更方便我們?nèi)ゲ榭慈罩?,定位問題。

七、設(shè)置永久代大小

-XX:MaxPermSize=1280m

在JDK1.7以及以前的版本中,只有Hotspot 才有Perm區(qū),稱為永久代,它在啟動(dòng)時(shí)固定大小,很難進(jìn)行調(diào)優(yōu)。

在某些情況下,如果動(dòng)態(tài)加載類過多,容易產(chǎn)生Perm區(qū)的 OOM。比如某個(gè)實(shí)際 Web 工程中,因?yàn)楣δ茳c(diǎn)較多,在運(yùn)行過程中,要不斷動(dòng)態(tài)加載很多類,就會(huì)出現(xiàn)類似錯(cuò)誤:

"Exception in thread 'dubbo client x.x.connect' java.lang.OutOfMemoryError:PermGenspace"

為了解決這個(gè)問題,就需要在項(xiàng)目啟動(dòng)時(shí),設(shè)定運(yùn)行參數(shù)-XX:MaxPermSize。

注意:在JDK1.8以后面的版本,使用元空間來代替永久代。在 JDK1.8以及后面的版本中,如果設(shè)定參數(shù)-XX:MaxPermSize,啟動(dòng)JVM不會(huì)報(bào)錯(cuò),但是會(huì)提示:

Java Hotspot 64Bit Server VM warning:ignoring option MaxPermSize=1280m:support was removed in 8.0

八、垃圾收集器常用參數(shù)


文章標(biāo)題:你需要知道的JVM參數(shù)都在這里
文章分享:http://m.5511xx.com/article/dhiciip.html