[分享] 在Paper1.14.x使用ZGC回收器

作者: shdopeoplesn (虛度人蔘)   2019-07-01 22:13:03
前幾天有某位伺服器內的大佬玩家推薦,才知道有ZGC這東西,
因為我對java開發及GC的機制一知半解,就不獻醜探討理論上的細節,
純粹分享資料以及實際應用在麥塊伺服器上的效果。
首先關於zgc的效能部份可以參考這份文件
http://cr.openjdk.java.net/~pliden/slides/ZGC-FOSDEM-2018.pdf
從文件的第6頁得知ZGC的停頓時間可以壓在10ms下,
而在第12頁中與G1GC比較的圖表,更能表現出他的效率之快。
(怕有版權問題就不截圖了,G1GC約在200~800ms之間浮動,資料越大停頓越久。)
要啟動ZGC的方法很簡單,只要是在Linux的環境且JAVA的版本在11以上,
然後於啟動伺服器的參數中加入
-XX:+UnlockExperimentalVMOptions -XX:+UseZGC
就可以運作了。
更多關於ZGC的資料可以參考OpenJDK的Wiki
https://wiki.openjdk.java.net/display/zgc/Main
最後這是我幾周前用G1GC的Timing,
https://timings.aikar.co/?id=489d8729e6db4ac0b9e1a4b9fc9f3337
https://i.imgur.com/6JUK5DV.png
啟動參數
-server -Xms15G -Xmx15G -XX:+UseG1GC -XX:ParallelGCThreads=12
-XX:+UseLargePages
然後是換成ZGC後的TIming
https://timings.aikar.co/?id=20788f4069cb4ac09785bc6e5c2d6d04
https://i.imgur.com/1dvw8sB.png
啟動參數
-server -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -Xmx15G
雖然前後有升級過PaperMC的版本,且Timing沒有蒐集GC回收時間的細節,
不算嚴謹的實驗,但整體而言TPS還是穩定了不少。
以上,把這好物推薦給大家~
作者: Arbin (路人_Lv菜逼八)   2019-07-01 23:54:00
Java11是非常新的版本 就怕換了其他插件會有問題...^Java 11以上而且下一個LTS版本也還沒出來(目前最新免費支援的LTS版本是Java 8)不是免費支援 是免費更新 我一直打錯少打orz等等 我在白癡 AdoptOpenJDK可以用lol而且Java 11就是LTS R 我已經不知道我在幹嘛了 抱歉=
作者: da21510 (da21510)   2019-07-02 06:44:00
ZGC不錯1.14早期版本有機率crash1.14.2以後就不會了
作者: james58899   2019-07-04 21:17:00
Java8已經要停止免費支援了,最好更新到11不過因為java9的變更,用了黑魔法的東西可能會爆炸

Links booklink

Contact Us: admin [ a t ] ucptt.com