AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

新項目為什么建議你使用 JDK17,一文告訴你升級的方法和不可拒絕的理由!

來源: 責編: 時間:2024-05-29 17:30:43 133觀看
導讀1、背景 TLDR;垃圾回收器的暫停問題對實時響應要求較高的服務來說,一直是個痛點, CMS和G1等主流垃圾回收器的數十毫秒乃至上百毫秒的暫停時間相當致命。此外,調優門檻也相對較高,需要對垃圾回收器的內部機制有一定的了解,

1、背景 TLDR;

wlc28資訊網——每日最新資訊28at.com

垃圾回收器的暫停問題對實時響應要求較高的服務來說,一直是個痛點, CMS和G1等主流垃圾回收器的數十毫秒乃至上百毫秒的暫停時間相當致命。此外,調優門檻也相對較高,需要對垃圾回收器的內部機制有一定的了解,才能夠進行有效的調優。隨著ZGC的出現, 使得這一痛點徹底解決, ZGC 最初在 JDK 11 中作為實驗性功能引入,并在 JDK 15 中宣布為生產就緒, 由于 JDK17 才是比較正式提供給大眾實用的LTS支持版本,而且一部分公司已經在使用,所以本文力推 JDK17。wlc28資訊網——每日最新資訊28at.com

wlc28資訊網——每日最新資訊28at.com

ZGC 作為一款低延遲垃圾收集器,旨在滿足以下目標:wlc28資訊網——每日最新資訊28at.com

wlc28資訊網——每日最新資訊28at.com

  • 8MB 到 16TB 的堆大小支持
  • 10ms 最大 GC 暫時
  • 最糟糕的情況下吞吐量會降低 15%(實測,如果參數配置的問題可能更糟, 官方這個稍微吹牛了點, 說實話就是用 CPU 換 GC 時間,也沒有那么高大上)

1.1 升級 JDK17 的不可拒絕的理由

wlc28資訊網——每日最新資訊28at.com

低延遲的業務需求,毫秒級耗時的 GCwlc28資訊網——每日最新資訊28at.com

wlc28資訊網——每日最新資訊28at.com

據美團的開發說:wlc28資訊網——每日最新資訊28at.com

wlc28資訊網——每日最新資訊28at.com

在 Zeus 服務不同集群中,ZGC 在低延遲(TP999 < 200ms)場景中收益較大:wlc28資訊網——每日最新資訊28at.com

  • TP999:下降 12~142ms,下降幅度 18%~74%。
  • TP99:下降 5~28ms,下降幅度 10%~47%。

wlc28資訊網——每日最新資訊28at.com

可以忽略的升級 JDK17 的理由:wlc28資訊網——每日最新資訊28at.com

wlc28資訊網——每日最新資訊28at.com

  • 新版的 Spring Boot 官方最低支持 JDK17,想使用新Spring版本,就得升級;
  • JIT 編譯器的增強;
  • JDK 17 中的新功能,例如 Sealed 類、Pattern Matching、Records 等;
  • 升級到 JDK 17 可以獲得更好的安全性,包括修復的漏洞和強化的安全機制。

1.2 適用場景

wlc28資訊網——每日最新資訊28at.com

  • 網關服務
  • Web API

wlc28資訊網——每日最新資訊28at.com

暫不推薦場景:定時任務、批量任務、高 CPU 密集型應用。wlc28資訊網——每日最新資訊28at.com

2、升級前后對比

wlc28資訊網——每日最新資訊28at.com

話不多說,先看效果。wlc28資訊網——每日最新資訊28at.com

wlc28資訊網——每日最新資訊28at.com

環境:wlc28資訊網——每日最新資訊28at.com

wlc28資訊網——每日最新資訊28at.com

CPU:4cMem: 6GB

wlc28資訊網——每日最新資訊28at.com

G1 參數:wlc28資訊網——每日最新資訊28at.com

wlc28資訊網——每日最新資訊28at.com

-Xmx3500m -Xms3500m -XX:+UseG1GC -XX:MaxGCPauseMillis=100-XX:G1ReservePercent=10 -XX:ConcGCThreads=2 -XX:ParallelGCThreads=5-XX:G1HeapRegionSize=16m -XX:MaxTenuringThreshold=14-XX:SurvivorRatio=8

wlc28資訊網——每日最新資訊28at.com

ZGC 參數:wlc28資訊網——每日最新資訊28at.com

wlc28資訊網——每日最新資訊28at.com

--add-opens=java.base/java.lang=ALL-UNNAMED -Xms3500m -Xmx3500m -XX:ReservedCodeCacheSize=256m -XX:InitialCodeCacheSize=256m -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -XX:ConcGCThreads=1 -XX:ParallelGCThreads=3 -XX:ZCollectionInterval=60 -XX:ZAllocationSpikeTolerance=4 -XX:+UnlockDiagnosticVMOptions -XX:-ZProactive  -Xlog:safepoint,classhisto*=trace,age*,gc*=info:file=/opt/gc-%t.log:time,tid,tags:filecount=5,filesize=50m

wlc28資訊網——每日最新資訊28at.com

上述兩個參數,均已經在生產環境實驗過, 生產環境的機器是單機擁有 1500 業務  tps 的機器。wlc28資訊網——每日最新資訊28at.com

wlc28資訊網——每日最新資訊28at.com

2.1 GC 耗時對比

wlc28資訊網——每日最新資訊28at.com

圖片圖片wlc28資訊網——每日最新資訊28at.com

wlc28資訊網——每日最新資訊28at.com

從上圖可見, GC 耗時是有著質的區別的,這個區別是你用 CMS、Parallel GC、 G1 等嘔心瀝血也調校不出來的。wlc28資訊網——每日最新資訊28at.com

這么短的GC, 可以保證,應用因為JVM層面的卡頓都保持在 1ms 以內, 這也是為啥說這點才是不能拒絕的理由。wlc28資訊網——每日最新資訊28at.com

wlc28資訊網——每日最新資訊28at.com

2.2 CPU 使用對比

wlc28資訊網——每日最新資訊28at.com

圖片wlc28資訊網——每日最新資訊28at.com

wlc28資訊網——每日最新資訊28at.com

從 CPU 使用上看, JDK17 相同的代碼, 比 JDK8 要高出 10 ~ 20%wlc28資訊網——每日最新資訊28at.com

3、升級方法

wlc28資訊網——每日最新資訊28at.com

3.1 JDK 選擇或安裝

wlc28資訊網——每日最新資訊28at.com

使用 JDK17 前必須要安裝 JDK17, 對于不同的 Linux 發行版或者操作系統安裝方法各不相同, 下面給出了一些樣例, 僅供參考。wlc28資訊網——每日最新資訊28at.com

wlc28資訊網——每日最新資訊28at.com

# ubuntu 安裝jdk17sudo apt install openjdk-17-jdk# docker 基礎鏡像docker pull openjdk:17-slimdocker pull openjdk:17-jdk-oraclelinux7FROM openjdk:17-slim

wlc28資訊網——每日最新資訊28at.com

3.2 JVM 參數調整

wlc28資訊網——每日最新資訊28at.com

有了 JDK17 后,已經具備了讓你的 Java 程序運行在 JDK17 上的基本條件了,下一步便是配置 JVM 參數如下(有需要的話,可以自行把換行整理下):wlc28資訊網——每日最新資訊28at.com

wlc28資訊網——每日最新資訊28at.com

--add-opens=java.base/java.lang=ALL-UNNAMED /-Xms1500m -Xmx1500m /-XX:ReservedCodeCacheSize=256m /-XX:InitialCodeCacheSize=256m / -XX:+UnlockExperimentalVMOptions /-XX:+UseZGC /-XX:Cnotallow=1 -XX:ParallelGCThreads=2 /-XX:ZCollectinotallow=30 -XX:ZAllocatinotallow=5 /-XX:+UnlockDiagnosticVMOptions -XX:-ZProactive /-Xlog:safepoint,classhisto*=trace,age*,gc*=info:file=/opt/gc-%t.log:time,tid,tags:filecount=5,filesize=50m /-XX:+HeapDumpOnOutOfMemoryError /-XX:HeapDumpPath=/opt/errorDump.hprof

wlc28資訊網——每日最新資訊28at.com

參數釋義

圖片圖片wlc28資訊網——每日最新資訊28at.com

wlc28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-91523-0.html新項目為什么建議你使用 JDK17,一文告訴你升級的方法和不可拒絕的理由!

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 有人問我架構圖、流程圖為什么這么好看?

下一篇: 服務失敗后如何重試?你學會了嗎?

標簽:
  • 熱門焦點
Top