欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

常用的JVM參數(shù)設置-創(chuàng)新互聯(lián)

文章目錄
  • 參數(shù)打印相關設置
  • 堆、棧、方法區(qū)等內(nèi)存大小設置
    • 方法區(qū)
      • Before JDK8
      • JDK8
    • 直接內(nèi)存
  • OOM相關設置
  • 垃圾收集器相關設置
    • Serial收集器
    • ParNew收集器
    • Parallel收集器
    • CMS收集器
    • G1收集器
  • GC日志相關設置

官方文檔 https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html
本篇涉及的指令基于JDK8驗證(除G1收集器外)

創(chuàng)新互聯(lián)公司主營嘉禾網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,app開發(fā)定制,嘉禾h5微信小程序開發(fā)搭建,嘉禾網(wǎng)站營銷推廣歡迎嘉禾等地區(qū)企業(yè)咨詢參數(shù)打印相關設置
  1. -XX:+PrintCommandLineFlags可以在程序運行前打印出用戶手動設置或是JVM自動設置的XX參數(shù)。
  2. -XX:+PrintFlagsInitial打印出所有XX參數(shù)的默認值。
  3. -XX:+PrintFlagsFinal打印出XX參數(shù)在運行程序時生效的值。
  4. -XX:+PrintVMOptions打印JVM的參數(shù)。
堆、棧、方法區(qū)等內(nèi)存大小設置 棧
  1. -Xss1m設置每個線程棧大小為1m,等價于-XX:ThreadStackSize=1m
  1. -Xms2048m設置JVM初始堆內(nèi)存為2048m,等價于-XX:InitialHeapSize。
  2. -Xmx2048設置JVM大堆內(nèi)存為2018m,等價于-XX:MaxHeapSize。
  3. -Xmn1g設置年輕代大小為1g,官方推薦配置為整個堆大小的3/8。
  4. -XX:NewSize=1024m設置年輕代初始值為1024m。
  5. -XXMaxNewSize=1024m設置年輕代大值為1024m。

    3、4、5的關系官方文檔描述是 The -XX:NewSize option is equivalent to -Xmn.
    Instead of the -Xmn option to set both the initial and maximum size of the heap for the young generation, you can use -XX:NewSize to set the initial size and -XX:MaxNewSize to set the maximum size.

  6. -XX:SurvivorRatio=8設置年輕代中Eden區(qū)和一個survivor區(qū)的比值,默認為8。
  7. -XX:+UseAdaptiveSizePolicy開啟自動選擇各區(qū)大小比例

    UseAdaptiveSizePolicy默認是開啟的,此時SurvivorRatio=8是不生效的,將UseAdaptiveSizePolicy關閉后,設置SurvivorRatio=8才會生效,Eden:survivor=8:1

  8. -XX:NewRatio=2設置老年代和年輕代(包括1個Eden和2個Survivor)的比值,默認為2,表示年輕代占整個堆空間的1/3,老年代占2/3。
  9. -XX:PretenureSizeThreshold=1024大于此閥值的對象直接分配在老年代,默認值的單位是字節(jié),自行設置時也可以寫成1m,只對Serial、ParNew收集器有效。
  10. -XX:MaxTenuringThreshold=15默認值是15,年輕代每次MinorGC后,還存活的對象年齡+1,當對象的年齡大于設置的這個值時就進入老年代。
  11. -XX:-PrintTenuringDistribution,讓JVM在每次MinorGC后打印出當前使用的Survivor中對象的年齡分布,默認是關閉的。
  12. -XX:TargetSurvivorRatio表示MinorGC結束后Survivor中占用空間的期望比例。
方法區(qū) Before JDK8
  1. -XX:PermSize=128m設置永久代初始值為128m。
  2. -XX:MaxPermSize=128m設置永久代大值為128m。
JDK8
  1. -XX:MetaspaceSize設置元空間初始大小,默認是21807104個字節(jié),約為21m。
  2. -XX:MaxMetaspaceSize設置元空間大值,默認無限制。
  3. -XX:+UseCompressedOops開啟壓縮對象指針,默認開啟。
  4. -XX:+UseCompressedClassPointers開啟壓縮類指針,默認開啟。
  5. -XX:CompressedClassSpaceSize設置Klass Metaspace大小,默認1g。
直接內(nèi)存

1.-XX:MaxDirectMemorySize指定直接內(nèi)存容量,默認值是0。

官方文檔描述
Sets the maximum total size (in bytes) of the New I/O (the java.nio package) direct-buffer allocations. Append the letter k or K to indicate kilobytes, m or M to indicate megabytes, g or G to indicate gigabytes. By default, the size is set to 0, meaning that the JVM chooses the size for NIO direct-buffer allocations automatically.

OOM相關設置
  1. -XX:+HeapDumpOnOutOfMemoryError開啟后,在出現(xiàn)OOM時生成dump文件。
  2. -XX:+HeapDumpBeforeFullGC開啟后,在出現(xiàn)FullGC前生成dump文件。
  3. -XX:HeapDumpPath=指定dump文件存儲路徑。

    筆者另一篇文章JVM監(jiān)控常用的6個命令行工具有詳細介紹使用方法。

  4. -XX:OnOutOfMemoryError當發(fā)生OOM時,執(zhí)行指定腳本。eg:-XX:OnOutOfMemoryError=/opt/Server/restart.sh
垃圾收集器相關設置 Serial收集器
  1. -XX:+UseSerialGC指定年輕代和老年代都是用串行收集器。對應年輕代使用Serial GC,老年代使用Serial Old GC。
ParNew收集器

1.-XX:+UseParNewGC指定年輕代使用ParNew并行收集器,不影響老年代。
2.-XX:ParallelGCThreads限制1中并行線程數(shù)量,默認開啟和CPU數(shù)量相同的線程數(shù)。

Parallel收集器
  1. -XX:+UseParallelGC開啟年輕代使用Parallel并行收集器執(zhí)行內(nèi)存回收任務。
  2. -XX:+UseParallelOldGC開啟老年代使用并行回收器。

    Parallel在JDK8中默認開啟,1和2配套使用,開啟其中一個參數(shù),另一個也會被開啟。

  3. -XX:ParallelGCThreads設置年輕代并行收集器的線程數(shù)。一般和CPU數(shù)量相等,以避免過多的線程數(shù)影響垃圾收集性能。

    在默認情況下,當CPU數(shù)量小于等于8個,ParallelGCThreads的值等于CPU數(shù)量。
    當CUP數(shù)量大于8個,ParallelGCThreads的值等于 3 + 5 * CPU_COUNT / 8。

  4. -XX:MaxGCPauseMillis設置垃圾收集器大停頓時間(STW),單位是毫秒。
  5. -XX:GCTimeRatio垃圾收集時間占總時間的比例 1 / (N + 1),取值范圍(0, 100),默認值99,也就是垃圾回收時間不超過1%。
  6. -XX:+UseAdaptiveSizePolicy設置PS(Parallel Scavenge)收集器開啟自適應調(diào)節(jié)策略。

    此種模式下,年輕代的大小、Eden和Survivor的比例,晉升老年代的對象年齡等參數(shù)會被自動調(diào)整,以達到在堆大小、吞吐量和停頓時間的平衡點。使用此種模式僅需設置虛擬機大堆,目標的吞吐量(GCTimeRatio)和停頓時間(MaxGCPauseMillis)。

CMS收集器
  1. -XX:+UseConcMarkSweepGC開啟使用CMS收集器進行垃圾回收。

    開啟該參數(shù)會自動將-XX:+UseParNewGC開啟,即:年輕代(ParNew)+ 老年代(CMS)+ Serial Old 組合。

  2. -XX:CMSLnitiatingOccupanyFraction設置堆內(nèi)存使用率閥值,到達該閥值便開始回收。
  3. -XX:+UseCMSCompactAtFullCollection默認開啟,在進行Full GC時開啟內(nèi)存碎的合并整理過程,此過程無法并發(fā),會導致停頓時間變長。
  4. -XX:CMSFullGCsBeforeCompaction此參數(shù)的作用是CMS收集器在執(zhí)行過若干次不整理空間的FullGC之后,下一次進入FullGC前會先進行碎片整理,默認值為0,表示每次進入Full GC時都進行碎片整理。
G1收集器

官方文檔:https://docs.oracle.com/en/java/javase/13/docs/specs/man/java.html

  1. -XX:+UseG1GC開啟G1收集器。
  2. -XX:G1HeapRegionSize設置每個Region的大小,值是2的N次冪,范圍1m ~ 32m,目標是根據(jù)最小的Java堆劃分出月2048個區(qū)域。
  3. -XX:MaxGCPauseMillis設置期望到達的大GC停頓時間,默認值是200ms。
  4. -XX:ParallelGCThreads設置STW時GC線程數(shù),大值為8。
  5. -XX:ConcGCThreads設置并發(fā)標記的線程數(shù),參考值:ParallelGCThreads 的1/4左右。
  6. -XX:InitiatingHeapOccupancyPercent設置觸發(fā)并發(fā)GC的堆占用率閥值,默認值為45%。
  7. -XX:G1NewSizePercent-XX:G1MaxNewSizePercent設置新生代占用整堆內(nèi)存的最小百分比(默認5%)、大百分比(默認60%)。
  8. -XX:G1ReservePercent保留內(nèi)存區(qū)域,防止survivor中的to區(qū)溢出,默認值10%。
GC日志相關設置
  1. -verbose:gc輸出簡化gc日志信息。
  2. -XX:+PrintGC等價于-verbose:gc
  3. -XX:+PrintGCDetails在發(fā)生垃圾回收是打印內(nèi)存回收詳細的日志,并在進程退出時輸出當前內(nèi)存各區(qū)域的使用情況。
  4. -XX:+PrintGCTimeStamps輸出GC發(fā)生時的時間戳,要配合-XX:+PrintGCDetails一起使用。
  5. -XX:+PrintGCDateStamps輸出GC發(fā)生時的時間戳(以日期的形式展示),要配合-XX:+PrintGCDetails一起使用。
  6. -XX:+PrintHeapAtGC每一次GC前、GC后都打印堆信息。
  7. -Xloggc:把GC日志寫到文件中。

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)站名稱:常用的JVM參數(shù)設置-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://chinadenli.net/article24/cohije.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供App設計企業(yè)建站服務器托管App開發(fā)定制開發(fā)網(wǎng)站建設

廣告

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

外貿(mào)網(wǎng)站建設