Java效能最佳化權威指南-讀書筆記(五)-JVM效能調優-輸送量,-jvm調優

來源:互聯網
上載者:User

Java效能最佳化權威指南-讀書筆記(五)-JVM效能調優-輸送量,-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 大頁面支援

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.