JVM典型配置和調優舉例

1. 堆設置
-Xms: :初始堆大小。
-Xmx: :最大堆大小。
-XX:NewSize=n: :設置年輕代大小。
-XX:NewRatio=n: : :設置年輕代和年老代的比值。如:爲 3,表示年輕代與年老代比值爲 1:3,
年輕代佔整個年輕代年老代和的 1/4。
-XX:SurvivorRatio=n: : :年輕代中 Eden 區與兩個 Survivor 區的比值。注意 Survivor 區有兩個。
如:3,表示 Eden:Survivor=3:2,一個 Survivor 區佔整個年輕代的 1/5。
-XX:MaxPermSize=n: : 設置持久代大小。
2. 收集器設置
-XX:+UseSerialGC: : 設置串行收集器。
-XX:+UseParallelGC: : 設置並行收集器。
-XX:+UseParalledlOldGC: : 設置並行年老代收集器。
-XX:+UseConcMarkSweepGC: : 設置併發收集器。
3. 垃圾回收統計信息設置
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-Xloggc:filename
4. 並行收集器設置
-XX:ParallelGCThreads=n:設置並行收集器收集時使用的 CPU 數。並行收集線程數。
-XX:MaxGCPauseMillis=n:設置並行收集最大暫停時間。
29
-XX:GCTimeRatio=n:設置垃圾回收時間佔程序運行時間的百分比。公式爲 1/(1+n)。
5. 併發收集器設置
-XX:+CMSIncrementalMode: : 設置爲增量模式。適用於單 CPU 狀況。
-XX:ParallelGCThreads=n: : 設置併發收集器年輕代收集方式爲並行收集時,使用的 CPU 數。並行
收集線程數。
6. 年輕代大小選擇
響應時間優先的應用 : :儘量設大,直到接近系統的最低響應時間限制(根據實際狀況選擇)。
在此種狀況下,年輕代收集發生的頻率也是最小的。同時,減小到達年老代的對象。
吞吐量優先的應用 :儘量的設置大,可能到達 Gbit 的程度。由於對響應時間沒有要求,
垃圾收集能夠並行進行,通常適合 8CPU 以上的應用。
7. 年老代大小選擇
響應時間優先的應用 : :年老代使用併發收集器,因此其大小須要當心設置,通常要考慮 併發
會話 率和 會話持續時間等一些參數。若是堆設置小了,能夠會形成內存碎片、高回收頻率以
及應用暫停而使用傳統的標記清除方式;若是堆大了,則須要較長的收集時間。最優化的方
案,通常須要參考如下數據得到:併發

1. 併發垃圾收集信息
2. 持久代併發收集次數
3. 傳統 GC 信息
4. 花在年輕代和年老代回收上的時間比例
減小年輕代和年老代花費的時間,通常會提升應用的效率優化

相關文章
相關標籤/搜索