JVM調優策略
GC的兩種型別
1. 新生代GC(Minor GC):指的是新生代中發生的垃圾回收,因為新生代中的物件建立和銷燬都比較快,頻繁,所以新生代的Minor GC發生很頻繁,如果新生代中出現了FULL GC,一般是由於記憶體擔保失敗(新生代的存活的物件無法移動到老年代中)導致的
2. 老年代GC(Major GC/FULL GC):指的是老年代中發生的垃圾回收,一般伴隨著一次Minor GC,而且FULL GC比Minor GC慢10倍以上
如何去調優
根據java Performance裡面的記憶體設定策略:
具體來說:
1. 整個java堆的大小設定為full gc後老年代使用的記憶體空間大小的3-4倍
2. 永久代記憶體空間大小設定為1.2-1.5倍full GC後永久代使用的空間大小
3. 新生代大小設定為full GC後1-1.5倍老年代使用的記憶體空間大小
4. 老年代大小設定為full GC後2-3倍老年代使用的記憶體空間大小
note:
1. sun官方建議新生代佔有java堆大小為3/8左右
2. java 堆 = 新生代+老年代 ,永久代的記憶體大小不算到java堆中
如果去確定full gc後老年代使用空間?
1. 觀察gc日誌,找出多次FULL GC後,老年代使用記憶體情況,取平均值
2. 藉助工具,強制觸發 FULL GC
強制觸發:
使用jmap工具可觸發FullGC
jmap -dump:live,format=b,file=heap.bin <pid> 將當前的存活物件dump到檔案,此時會觸發FullGC
jmap -histo:live <pid> 列印每個class的例項數目,記憶體佔用,類全名資訊.live子引數加上後,只統計活的物件數量. 此時會觸發FullGC
後面藉助jmap -heap <pid> 檢視記憶體使用情況(建議查gc日誌更準確),找出老年代大小進行調優
總結:
在記憶體相對緊張的情況下,可以按照上述的方式來進行記憶體的調優, 找到一個在GC頻率和GC耗時上都可接受的一個記憶體設定,可以用較小的記憶體滿足當前的服務需要
但當記憶體相對寬裕的時候,可以相對給服務多增加一點記憶體,可以減少GC的頻率,GC的耗時相應會增加一些。 一般要求低延時的可以考慮多設定一點記憶體, 對延時要求不高的,可以按照上述方式設定較小記憶體。
實踐開始,入手一個gc日誌
Full GC
[PSYoungGen: 34816K->34335K(68608K)]
[ParOldGen: 204692K->204692K(204800K)] 239508K->239028K(273408K)
[PSPermGen: 17992K->17992K(21504K)], 0.5403820 secs]
[Times: user=5.01 sys=0.02, real=0.54 secs]
可以設定:
-Xms:613M
-Xmx:820M
-XX:PerSize=27M
-XX:MaxPermSize=33M
-Xmn:205M
轉載自:https://www.dutycode.com/jvm_xmx_xmn_xms_shezhi.html
相關文章
- JVM調優JVM
- JVM面試問題系列:JVM 配置常用引數和常用 GC 調優策略JVM面試GC
- JVM調優淺談JVM
- JVM調優推薦JVM
- 掌握JVM調優命令JVM
- JVM調優:HotSpot JVM垃圾收集器JVMHotSpot
- JVM調優-學習篇JVM
- "簡單"的jvm調優JVM
- JVM 調優示例和配置JVM
- JVM 調優命令&工具使用JVM
- JVM 引數調優(qbit)JVM
- “簡單”的jvm調優JVM
- JVM常用調優引數JVM
- JVM 調優(學習篇)JVM
- JVM快速調優手冊v1.0之三:記憶體分配策略JVM記憶體
- 【JVM進階之路】十:JVM調優總結JVM
- JVM原理講解和調優JVM
- 深入理解JVM效能調優JVM
- JVM調優工具Arthas的使用JVM
- JVM常用調優工具介紹JVM
- 第37篇 JVM調優方式JVM
- 《java學習三》jvm效能優化-------調優JavaJVM優化
- 探探Java之 JVM GC與調優JavaJVMGC
- JVM效能調優與實戰篇JVM
- 【深入理解JVM】8、JVM實戰調優+GC演算法+JVM調優如何定位問題+常見的定位JVM優化命令【面試必備】JVMGC演算法優化面試
- 大型跨境電商JVM調優經歷JVM
- JVM快速調優手冊v1.0JVM
- JVM調優之JConsole和JVisualVM工具使用JVMLVM
- 《沙盤模擬系列》JVM如何調優JVM
- JVM調優:基本垃圾回收演算法JVM演算法
- 跟著練、包會(JVM調優工具)JVM
- JVM效能調優,記憶體分析工具JVM記憶體
- 眾多業內大佬推薦閱讀!!《Java效能優化實踐:JVM調優策略、工具與技巧》已上市~~Java優化JVM
- 效能調優(cpu/IO/JVM記憶體分析)JVM記憶體
- JVM調優必備理論知識-GCCollectorJVMGC
- 常用的 jvm 調優的引數都有哪些JVM
- JVM之調優及常見場景分析JVM
- MySQL-12.資料庫其他調優策略MySql資料庫