程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java功能優化威望指南-讀書筆記(五)-JVM功能調優-吞吐量

Java功能優化威望指南-讀書筆記(五)-JVM功能調優-吞吐量

編輯:關於JAVA

Java功能優化威望指南-讀書筆記(五)-JVM功能調優-吞吐量。本站提示廣大學習愛好者:(Java功能優化威望指南-讀書筆記(五)-JVM功能調優-吞吐量)文章只能為提供參考,不一定能成為您想要的結果。以下是Java功能優化威望指南-讀書筆記(五)-JVM功能調優-吞吐量正文


吞吐量是指,使用順序的TPS: 每秒多少次事務,QPS: 每秒多少次查詢等功能目標。

吞吐量調優就是增加渣滓搜集器耗費的CPU周期數,從而將更多的CPU周期用於執行使用順序。

CMS吞吐調優

CMS包括Minor GC所帶來的開支應該小於10%,假如渣滓搜集的開支在3%或更少,闡明經過調優吞吐量,提升功能的空間就極端無限了。

可用的調優辦法如下:

1. 增大重生代空間,以降低Minor GC頻率,增加CPU周期占用;

2. 添加老年代空間,以降低CMS頻率,並可以增加老年代內存碎片;

3. 優化CMS周期的啟動條件,盡能夠在較晚的時分停止;

總的來說,就是增加渣滓搜集占用的CPU周期。

ParallelGC吞吐調優

這裡說的ParallelGC是指開啟了上面兩個JVM參數

-XX:+UseParallelGC
-XX:+UseParallelOldGC

對ParallelGC調優的目的是盡能夠防止發作Full GC,這就需求優化對象老化頻率,可以調整Survivor空間完成對對象老化的優化。

運用ParallelGC時,渣滓搜集的開支應小於5%,假如曾經增加到1%甚至更少,那根本上就曾經到達了極限。

Survivor調優

ParallelGC默許可以自動調整Survivor空間,大局部使用用自動調整曾經可以,對要求比擬高的使用就需求封閉自動調整,停止手動調整。

為JVM添加上面兩個參數,只針對ParallelGC有用:

-XX:-UseAdaptiveSizePolicy     //封閉自順應調整
-XX:+PrintAdaptiveSizePolicy   //打印詳細Survivor空間占用日志

如上面日志:

2016-12-11T16:44:03.653+0800: 5.042: [GC (Allocation Failure) AdaptiveSizePolicy::update_averages:  
survived: 10464720  
promoted: 1096456  
overflow: true

survived:“TO”Survivor空間占用大小;

promoted: 重生代提升至老年代的對象大小;

overflow:能否有Survivor空間的對象溢出到老年代;

從下面的日志可以看出,Minor GC後重生代存活對象大小10M,由於沒有設置-XX:TargetSurvivorRatio,默許Survivor空間占用比率為50%,

所以Survivor空間應為20M。

找到波動態下Full GC之間一切Minor GC中最大的存活對象大小,然後就可以調整Survivor空間大小。

原JVM參數如下:

-Xmx1024m –Xms1024m –Xmn50m -XX:SurvivorRatio=3

可以計算出:原Survivor空間:10M,原Eden空間:30M

如今增大Survivor空間到20M

保證Eden空間不變,則重生代大小為70M;

70M / (SurvivorRatio + 2)=20M,所以SurvivorRatio=1.5

保證老年代空間不變,則Java堆大小調整為1044M

所以最後JVM參數為:

-Xmx1044m -Xms1044m -Xmn70m -XX:SurvivorRatio=1.5

假如Java堆大小曾經不能再增大,可以計算下Minor GC後,存活對象的最小值、最大值、均勻值,假如不存在大幅動搖,

可以嘗試進步Survivor空間的占用百分比-XX:TargetSurvivorRatio=<n>,其默許為50%。

並行線程調優

-XX:ParallelGCThreads  

並行渣滓搜集器的線程數,建議搜集線程數設置的小於默許值,否則少量GC線程會影呼應用功能

其他功能命令行選項

-XX:+AggressiveOpts 自動優化,但有能夠不太波動 -XX:+DoEscapeAnalysis 逃逸剖析 -XX:+UseBiasedLocking 傾向鎖 -XX:+UseLargePages 大頁面支持
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved