JVM參數(shù)配置說明
本文從堆棧內(nèi)存、回收器GC兩方面介紹常見的JVM參數(shù)并提供配置示例。
調(diào)優(yōu)堆棧內(nèi)存
堆棧大小典型配置參數(shù)
配置參數(shù) | 說明 | 示例 |
| 設(shè)置最大堆大小。 |
|
| 設(shè)置JVM初始內(nèi)存。 |
|
| 設(shè)置年輕代大小。 |
|
| 設(shè)置線程的棧大小。 |
說明 JDK 5.0版本以后每個線程棧大小為1 MB,JDK 5.0以前版本每個線程棧大小為256 KB。請依據(jù)應(yīng)用的線程所需內(nèi)存大小進(jìn)行調(diào)整。在相同物理內(nèi)存下,減小該值可以生成更多的線程。但是操作系統(tǒng)對一個進(jìn)程內(nèi)的線程個數(shù)有一定的限制,無法無限生成,一般在3000個~5000個。 |
| 設(shè)置年輕代和年老代的比值。 |
|
| 年輕代中Eden區(qū)與兩個Survivor區(qū)的比值。 |
|
| 設(shè)置持久代大小。 |
|
| 設(shè)置垃圾最大年齡。 |
|
調(diào)優(yōu)回收器GC(Garbage Collection)
吞吐量優(yōu)先的GC典型配置參數(shù)
配置參數(shù) | 說明 | 示例 |
| 選擇垃圾收集器為并行收集器。 |
|
| 配置并行收集器的線程數(shù),即同時多少個線程一起進(jìn)行垃圾回收。 說明 此值建議配置與處理器數(shù)目相等。 |
|
| 配置年老代垃圾收集方式為并行收集。 說明 JDK 6.0支持對年老代并行收集。 |
|
| 設(shè)置每次年輕代垃圾回收的最長時間,如果無法滿足此時間,JVM會自動調(diào)整年輕代大小,以滿足此值。 |
|
| 設(shè)置此選項后,并行收集器自動選擇年輕代區(qū)大小和相應(yīng)的Survivor區(qū)比例,以達(dá)到目標(biāo)系統(tǒng)規(guī)定的最低響應(yīng)時該間或者收集頻率,該選項建議使用并行收集器時一直打開。 |
|
響應(yīng)時間優(yōu)先的GC典型配置參數(shù)
配置參數(shù) | 說明 | 示例 |
| 設(shè)置年老代為并發(fā)收集。 說明 配置了 |
|
| 設(shè)置年輕代為并行收集。 可與CMS收集同時使用。JDK 5.0以上版本,JVM根據(jù)系統(tǒng)配置自行設(shè)置,無需再設(shè)置此值。 |
|
| 由于并發(fā)收集器不對內(nèi)存空間進(jìn)行壓縮、整理,所以運行一段時間以后會產(chǎn)生“碎片”,使得運行效率降低。此值設(shè)置運行多少次GC以后對內(nèi)存空間進(jìn)行壓縮、整理。 |
|
| 打開對年老代的壓縮。 說明 該值可能會影響性能,但是可以消除碎片。 |
|
用于輔助的GC典型配置參數(shù)
配置參數(shù) | 說明 |
| 用于輸出GC日志。 |
| 用于輸出GC日志詳情。 |
| 用于輸出GC時間戳(JVM啟動到當(dāng)前日期的總時長的時間戳形式)。示例如下:
|
| 用于輸出GC時間戳(日期形式)。示例如下:
|
| 在進(jìn)行GC前后打印出堆的信息。 |
| 日志文件的輸出路徑。 |