亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

基于JDK17-CRaC技術的java啟動加速技術

2024-10-14 09:40:32
62
0

什么是CRaC

aboullaite.me/what-the-crac/

 

出自Azul system,也是基于CRIU技術的一個java 進程保存,恢復的技術

azul.com/products/components/crac/

目前open jdk 17 集成了CRaC

其他更高版本沒有,需要使用Azul版本的OPEN JDK版本才行

 

使用spring boot 3.2 + jdk 17進行CRaC 驗證:

my.oschina.net/klblog/blog/10946547

總結

CRaC 當前只是初步支持,有些場景:比如內存里維護了復雜狀態的應用,可能會遇到問題,啟用前請謹慎做好全場景的測試。

 

遇到的問題

1、JDK 依賴問題

CRaC 特性依賴 JDK 特性支持,目前 openjdk 發行版只支持到 JDK17。如果在不支持的 JDK 下啟用 CRaCCheckpointTo,則會輸出:

Unrecognized VM option 'CRaCCheckpointTo'
Error: Could not create the Java Virtual Machine.Error: A fatal exception has occurred. Program will exit.

CRaC 最早是 Azul 發起的一個項目,可以用 Azul 的社區發行版來驗證 CRaC 特性,如:

  • docker image:azul/zulu-openjdk:21-jdk-crac

2、GC 算法問題

ZGC 算法下,不支持 CRaC,在 ZGC 啟用時,會輸出:

Error: Could not create the Java Virtual Machine.Error: A fatal exception has occurred. Program will exit.
-XX:+UseZGC is currently unsupported for -XX:CRaCCheckpointTo.

為了驗證 CRaC 功能,只好先移除 -XX:+UseZGC

3、打開的 FD & Socket 問題

CRaC 要求應用程序關閉所有打開的文件、網絡連接等。在 Linux 上,這些內容表示為文件描述符。但是,可能很難更改應用程序以與檢查點正確協調,例如,由于無法修改庫中的代碼。在這些情況下,CRaC 通過配置提供有限的處理。

 

理論上所有的資源都需要向 JVM 注冊資源的 Checkpoint 前后的資源狀態,Spring 內置的依賴都處理好了這一步,但是三方依賴就會有一些異常

 



  • Openjdk 發行版并未全部覆蓋支持,目前支持的最高版本是 JDK17。更高版本的支持只能用 Azul 的 JDK

  • 當前還有非常多的集成問題,且大量第三方包并沒有做適配,Azul 官方給的 resource-policies 解決方案還屬于初步階段

  • Spring Boot 3.2 也是初步支持,Issue 區有大量集成的問題

 

0條評論
0 / 1000
張****釧
15文章數
1粉絲數
張****釧
15 文章 | 1 粉絲
原創

基于JDK17-CRaC技術的java啟動加速技術

2024-10-14 09:40:32
62
0

什么是CRaC

aboullaite.me/what-the-crac/

 

出自Azul system,也是基于CRIU技術的一個java 進程保存,恢復的技術

azul.com/products/components/crac/

目前open jdk 17 集成了CRaC

其他更高版本沒有,需要使用Azul版本的OPEN JDK版本才行

 

使用spring boot 3.2 + jdk 17進行CRaC 驗證:

my.oschina.net/klblog/blog/10946547

總結

CRaC 當前只是初步支持,有些場景:比如內存里維護了復雜狀態的應用,可能會遇到問題,啟用前請謹慎做好全場景的測試。

 

遇到的問題

1、JDK 依賴問題

CRaC 特性依賴 JDK 特性支持,目前 openjdk 發行版只支持到 JDK17。如果在不支持的 JDK 下啟用 CRaCCheckpointTo,則會輸出:

Unrecognized VM option 'CRaCCheckpointTo'
Error: Could not create the Java Virtual Machine.Error: A fatal exception has occurred. Program will exit.

CRaC 最早是 Azul 發起的一個項目,可以用 Azul 的社區發行版來驗證 CRaC 特性,如:

  • docker image:azul/zulu-openjdk:21-jdk-crac

2、GC 算法問題

ZGC 算法下,不支持 CRaC,在 ZGC 啟用時,會輸出:

Error: Could not create the Java Virtual Machine.Error: A fatal exception has occurred. Program will exit.
-XX:+UseZGC is currently unsupported for -XX:CRaCCheckpointTo.

為了驗證 CRaC 功能,只好先移除 -XX:+UseZGC

3、打開的 FD & Socket 問題

CRaC 要求應用程序關閉所有打開的文件、網絡連接等。在 Linux 上,這些內容表示為文件描述符。但是,可能很難更改應用程序以與檢查點正確協調,例如,由于無法修改庫中的代碼。在這些情況下,CRaC 通過配置提供有限的處理。

 

理論上所有的資源都需要向 JVM 注冊資源的 Checkpoint 前后的資源狀態,Spring 內置的依賴都處理好了這一步,但是三方依賴就會有一些異常

 



  • Openjdk 發行版并未全部覆蓋支持,目前支持的最高版本是 JDK17。更高版本的支持只能用 Azul 的 JDK

  • 當前還有非常多的集成問題,且大量第三方包并沒有做適配,Azul 官方給的 resource-policies 解決方案還屬于初步階段

  • Spring Boot 3.2 也是初步支持,Issue 區有大量集成的問題

 

文章來自個人專欄
文章 | 訂閱
0條評論
0 / 1000
請輸入你的評論
0
0