Redian新闻
>
利用 CRaC,将 Java 应用程序恢复启动时间缩短到几毫秒

利用 CRaC,将 Java 应用程序恢复启动时间缩短到几毫秒

科技

作者 | Johan Janssen
译者 | 平川
策划 | Tina

BellSoft发布 了带有 检查点协调恢复(全名 Coordinated Restore at Checkpoint,缩写 CRaC)功能的 17 和 21 版 Liberica JDK。该特性允许开发人员在任何时间点(检查点)为正在运行的应用程序创建快照。然后,他们可以使用该快照通过恢复应用程序的状态在几毫秒内启动应用程序。

CRaC 基于 Linux 特性用户空间检查点和恢复(全名 Checkpoint and Restore in Userspace,缩写 CRIU),这意味着这些构建只适用于运行 Linux 操作系统的 x86_64 和 AArch64 CPU 架构。CRIU 提供检查点和恢复功能,并被 Docker、Podman 等各种解决方案所使用。

CRaC 会存储正在运行的应用程序的状态,包括 Java 堆、JIT 编译代码、本机内存和设置。开发人员应确保存储的状态中没有密码等敏感数据。初始化期间会通过 JavaRandom类生成种子,这意味着快照恢复时的随机数是可预测的。为了实现随机性,可以在恢复之后在afterRestore()方法中创建一个新的种子。更好的解决方案是使用 Java SecureRandom类在快照之前清除种子并锁定随机操作,然后在afterRestore()方法中删除锁定。

协调检查点和恢复可以确保应用程序知道它正在暂停和重新启动。这可以确保网络连接和打开的文件描述符已关闭,使得这个过程更加可靠。该过程还允许应用程序在还没有准备好时(例如正在保存用户数据)取消检查点。

可以使用以下命令启动MyApplication并指定 checkpoint-data 目录。该目录将包含创建快照时的 JVM 数据:

$ java -XX:CRaCCheckpointTo=checkpoint-data MyApplication

现在,可以使用 jcmd 命令创建一个快照了:

$ jcmd MyApplication JDK.checkpoint

之后,可以通过恢复 checkpoint-data 目录下快照的状态来启动应用程序:

$ java -XX:CRaCRestoreFrom=checkpoint-data

其他加速启动应用程序的解决方案,例如 GraalVM 使用的提前(AOT)编译和 Quarkus 使用的应用程序类数据共享(AppCDS),也可以提供快速启动。但是,这些解决方案不支持在运行时使用 JIT 编译器进行进一步优化。

Bellsoft 建议,CRaC 主要用于具有以下特征的应用程序:短时间运行、低 CPU 限值、复制并频繁重启。

CRaC 最初由 Azul 开发,现已成为 OpenJDK 的一个项目。Azul 还在他们自己的 OpenJDK 下游发行版 Zulu 中包含了 CRaC。CRaC 正变得越来越 主流,并得到 Spring Boot、Quarkus、Micronaut 和 AWS Lambda SnapStart 等工具的支持。

要了解更多在普通 Java 应用程序和 Spring Boot 应用程序中使用 CRaC 的信息,可以查阅 Bellsoft 性能架构师 Dmitry Chuyko 撰写的博文“如何在 Java 应用程序中使用 CRaC”。

原文链接:

https://www.infoq.com/news/2023/12/bellsoft-liberica-crac/

声明:本文由 InfoQ 翻译,未经许可禁止转载。

今日好文推荐

发布 Vue3 让尤雨溪吃尽苦头:犯了3个错,每一个都需开发者警惕

阿里被判向京东赔偿10亿;要求销毁 ChatGPT,微软和 OpenAI被起诉;阿里云大调整:混合云部分团队裁员30%|Q资讯

80 岁 Postgres 创始人、数据库领域“祖师爷”想颠覆数据库设计:不推翻下当前技术,不足以谈人生

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
美国国务院:护照处理时间已缩短从千亿美元到几十亿美元,币安创始人CZ赵长鹏财富大幅缩水,币圈又要爆雷了吗?大师对谈|当制片人遇到几乎零预算的导演,该如何展开合作?——菲利普·博伯 x 米开朗基罗·弗兰马汀诺对谈回顾过年遛娃看舞龙舞狮全攻略:9个商场春节庆祝活动时间表秘鲁总统参加活动时遇袭澳洲留学生捡到几万现金!交给警察3年后,法庭奖励他4万!Quarkus 开发基于 LangChain4j 的扩展,方便将 LLM 集成到 Quarkus 应用程序中夏婳:两情难相知(四十三)OpenAI 演讲:如何通过 API 将大模型集成到自己的应用程序中重磅!加拿大CBSA官宣:使用数字工具建设现代化边境,大大缩短边境等待时间!旅客体验更顺畅!纽约推新应用程序,家长可实时追踪校车如何加快大型遗留应用程序的开发速度?2023东风本田破旧立新,为全面开启“电动时刻”蓄力奠基英飞凌谈八英寸SiC,将要到来分割一切「3D高斯」版来了:几毫秒完成3D分割、千倍加速像Docker一样编排大模型应用程序:这支十余人的年轻创业团队如何在2个月做出一个LLMOps平台?【已生效】万豪套房券改名为升房券:可用于丽思卡尔顿、艾迪逊等品牌,确认时间缩短到3天据媒体报道,近日北京贝塔伏公司研制微型核电池,研发团队利用镍63核同位素衰变技术和金刚石半导体,将核电池小型化、模块化、低成本化加拿大边境服务局 (CBSA) 采用新技术,边境等待时间将大大缩短分割一切"3D高斯"来了!上交&华为提出SAGA:几毫秒完成3D分割一切!官宣!澳洲直接送PR,1.1万名额!月底一项签证也有重大调整,拿永居时间缩短!而不少华人,还在苦等……航程时间缩段一半! 超音速客机飞行革命即将来临! 世界最快客机已被预定"报行合一"进行时!从银行一线看变化,"1万保费的小账从三千降到几百"丢掉 LangChain、像 Docker一样编排大模型应用程序:这支十余人的年轻创业团队如何在2个月做出一个LLMOps平台?说说李克强的两岸关系政策小哥海里捡到几十年前的戒指,竟上网找到了失主:真晦气,故意丢的!跨语言编程:在C#应用程序中调用Python红色日记 批评高潮 2.16-28孩子多大开始涂氟?要涂到几岁?一年涂几次?一次讲清!好消息!加拿大边境局宣布采用新技术:等待时间将大大缩短!【提示】@户外运动爱好者,寒冷天气,长时间户外活动时,警惕这个症状!龙的崛起|将氢弹计算速度从40小时缩短到20秒,中美超级计算机的较量彭丽媛至哀总理; 哈喽喂看差异手握 Apple Music,苹果为何又开发一款古典音乐应用?|反直觉 Lab聊点科学(2)——宇宙起源
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。