精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

垃圾收集器的JVM參數配置

科技綠洲 ? 來源:Java技術指北 ? 作者:Java技術指北 ? 2023-10-09 16:35 ? 次閱讀

本篇文章我們就來給大家介紹垃圾收集器的 JVM 參數配置。

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

1、標準參數

標準參數,顧名思義,標準參數中包括功能以及輸出的結果都是很穩定的,基本上不會隨著JVM版本的變化而變化。

我們可以通過 -help 命令來檢索出所有標準參數。

圖片

關于這些命令的詳細解釋,可以參考官網:https://docs.oracle.com/javase/7/docs/technotes/tools/solaris/java.html

-help 也是一個標準參數,再比如使用比較多的 -version也是。

①、-version

顯示Java的版本信息。圖片

2、X 參數

對應前面講的標準化參數,這是非標準化參數。表示在將來的JVM版本中可能會發生改變,但是這類以 -X開始的參數變化的比較小。

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

圖片

關于這些參數的介紹,其實上圖的中文解釋很清楚了,這里我們不作過多的介紹。

3、XX參數

這是我們日常開發中接觸到最多的參數類型。這也是非標準化參數,相對來說不穩定,隨著JVM版本的變化可能會發生變化,主要用于JVM調優和debug。

注意:這種參數是我們后續介紹JVM調優講解最多的參數。

該參數的書寫形式又分為兩大類:

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

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

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

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

4、參數詳解

1、打印已經被用戶或者當前虛擬機設置過的參數

-XX:+PrintCommandLineFlags

比如:

圖片

2、最大堆和最小堆內存設置

-Xms512M:設置堆內存初始值為512M

-Xmx1024M:設置堆內存最大值為1024M

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

-XX:InitialHeapSize

-XX:MaxHeapSize

在通常情況下,服務器項目在運行過程中,堆空間會不斷的收縮與擴張,勢必會造成不必要的系統壓力。所以在生產環境中,JVM的Xms和Xmx要設置成一樣的,能夠避免GC在調整堆大小帶來的不必要的壓力。

3、Dump異??煺找约耙晕募问綄С?/p>

-XX:+HeapDumpOnOutOfMemoryError

-XX:HeapDumpPath

堆內存出現OOM的概率是所有內存耗盡異常中最高的,出錯時的堆內信息對解決問題非常有幫助,所以給JVM設置這個參數(-XX:+HeapDumpOnOutOfMemoryError),讓JVM遇到OOM異常時能輸出堆內信息,并通過(-XX:+HeapDumpPath)參數設置堆內存溢出快照輸出的文件地址,這對于特別是對相隔數月才出現的OOM異常尤為重要。

這兩個參數通常配套使用:

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

4、發送OOM后,執行一個腳本

-XX:OnOutOfMemoryError

比如這樣設置:

-XX:OnOutOfMemoryError="C:Program FilesJavajdk1.8.0_152binjconsole.exe"

表示發生OOM后,運行jconsole.exe程序。這里可以不用加“”,因為jconsole.exe路徑Program Files含有空格。

利用這個參數,我們可以在系統OOM后,自定義一個腳本,可以用來發送郵件告警信息,可以用來重啟系統等等。

5、打印gc信息

①、打印GC簡單信息

-verbose:gc

-XX:+PrintGC

一個是標準參數,一個是-XX參數,都是打印詳細的gc信息。通常會打印如下信息:

圖片

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

②、打印詳細GC信息

-XX:+PrintGCDetails

-XX:+PrintGCTimeStamps

圖片

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

-Xloggc:./gc.log

這個在參數用于將gc日志以文件的形式輸出,更方便我們去查看日志,定位問題。

7、設置永久代大小

-XX:MaxPermSize=1280m

在JDK1.7以及以前的版本中,只有Hotspot 才有Perm區,稱為永久代,它在啟動時固定大小,很難進行調優。

在某些情況下,如果動態加載類過多,容易產生Perm區的 OOM。比如某個實際 Web 工程中,因為功能點較多,在運行過程中,要不斷動態加載很多類,就會出現類似錯誤:

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

為了解決這個問題,就需要在項目啟動時,設定運行參數-XX:MaxPermSize。

注意:在JDK1.8以后面的版本,使用元空間來代替永久代。在 JDK1.8以及后面的版本中,如果設定參數-XX:MaxPermSize,啟動JVM不會報錯,但是會提示:

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

8、垃圾收集器常用參數

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 內存
    +關注

    關注

    8

    文章

    2998

    瀏覽量

    73882
  • 參數
    +關注

    關注

    11

    文章

    1784

    瀏覽量

    32086
  • JVM
    JVM
    +關注

    關注

    0

    文章

    157

    瀏覽量

    12207
  • 收集器
    +關注

    關注

    0

    文章

    30

    瀏覽量

    3126
收藏 人收藏

    評論

    相關推薦

    jvm參數配置問題怎么解決

    jvm參數配置問題
    發表于 05-05 17:29

    詳細介紹了Java泛型、注解、并發編程

    VS 分區收集算法、GC 垃圾收集器、JAVA IO/NIO 、JVM 類加載機制的各大知識點。詳細知識
    發表于 08-20 06:09

    Jvm垃圾回收機制及性能調優實戰

    JVM中自動檢測并移除不再使用的數據對象的這種機制稱為:垃圾回收,簡稱GC。JVM通過使用垃圾收集器及使用相應的
    發表于 04-03 14:31 ?2次下載

    JVM入門之垃圾回收算法

    根據如何判定對象是垃圾,垃圾回收算法分為兩類:1、 「引用計數式垃圾收集」 (判定垃圾是通過引用計數
    的頭像 發表于 02-10 11:40 ?777次閱讀
    <b class='flag-5'>JVM</b>入門之<b class='flag-5'>垃圾</b>回收算法

    JVM垃圾機制是如何工作的呢?

    單線程收集器,“單線程” 的意義并不僅僅說明它只會使用一個 CPU 或一條收集線程去完成垃圾收集工作,更重要的是在它進行垃圾
    的頭像 發表于 02-28 16:08 ?573次閱讀

    漫途智能網關助力必藍水面垃圾收集器成為智慧數字城市的環境守護者!

    無錫高新區報道了一種“24小時自動吃垃圾”的神奇產品,該設備是一種智能化的水面垃圾收集器。 文章截圖 這款水面垃圾自動收集器采用了最新的跌水
    的頭像 發表于 05-09 16:25 ?599次閱讀
    漫途智能網關助力必藍水面<b class='flag-5'>垃圾</b><b class='flag-5'>收集器</b>成為智慧數字城市的環境守護者!

    Farmaid數據收集器開源分享

    電子發燒友網站提供《Farmaid數據收集器開源分享.zip》資料免費下載
    發表于 06-27 10:00 ?0次下載
    Farmaid數據<b class='flag-5'>收集器</b>開源分享

    如何選擇垃圾收集器

    1、垃圾收集器種類 事實上Java虛擬機規范對垃圾收集器應該如何實現,并沒有任何的規定,所以不同的廠商、不同版本的虛擬機所提供的垃圾
    的頭像 發表于 10-09 16:48 ?658次閱讀
    如何選擇<b class='flag-5'>垃圾</b><b class='flag-5'>收集器</b>

    jvm調優參數

    JVM(Java虛擬機)是Java程序的運行環境,它負責解釋Java字節碼并執行相應的指令。為了提高應用程序的性能和穩定性,我們可以調優JVM參數JVM調優主要涉及到堆內存、
    的頭像 發表于 12-05 11:29 ?598次閱讀

    jvm參數的設置和jvm調優

    JVM(Java虛擬機)參數的設置和調優對于提高Java應用程序的性能和穩定性非常重要。在本文中,我們將詳細介紹JVM參數的設置和調優方法。 一、J
    的頭像 發表于 12-05 11:36 ?1421次閱讀

    jvm配置metaspace最大值的參數

    不同的參數來進行配置。本文將詳細介紹JVM配置Metaspace最大值的參數,包括-Xmx、-XX:MaxMetaspaceSize、-XX
    的頭像 發表于 12-05 14:21 ?2006次閱讀

    jvm配置的mx

    用于設置JVM的最大堆內存大小,即堆的上限。當堆內存不足時,JVM會觸發垃圾回收機制以釋放內存。如果垃圾回收無法釋放足夠的內存,JVM可能會
    的頭像 發表于 12-05 14:24 ?676次閱讀

    weblogic jvm參數配置

    在WebLogic中,JVM參數配置是非常重要的,它可以對應用程序的性能和穩定性產生直接影響。JVM參數通過調整Java虛擬機的運行時行為,
    的頭像 發表于 12-05 14:31 ?1371次閱讀

    weblogic控制臺配置jvm參數

    WebLogic Server是一個用于構建、部署和管理大規模分布式應用程序的Java EE應用服務。在WebLogic控制臺中配置JVM參數非常重要,它可以影響應用程序性能和服務
    的頭像 發表于 12-05 14:48 ?2634次閱讀

    深入理解Java 8內存管理機制及故障排查實戰指南

    Java的自動內存管理機制是由 JVM 中的垃圾收集器來實現的,垃圾收集器會定期掃描堆內存中的對象,檢測并清除不再使用的對象,以釋放內存資源
    的頭像 發表于 04-04 08:10 ?969次閱讀
    深入理解Java 8內存管理機制及故障排查實戰指南