这是关于使用 ReadyNow 加快 Java 应用程序预热系列的第四篇博文。如果您还没有关注本系列,请返回第一篇博文, 更快的 Java 预热:CRaC 与 ReadyNow,了解一下。这篇文章研究了 Optimizer Hub,这是 Azul Platform Prime 中 JVM 外部的一组服务,您可以在云端或本地环境中运行它, 以提高应用程序的启动和编译速度。
Optimizer Hub 提供云原生编译器和 ReadyNow Orchestrator 服务,可与 OpenJDK 的 Azul Zing 构建版本 (Zing) 中包含的 ReadyNow 结合使用,以进一步提高应用程序的启动和编译速度。
什么是 Optimizer Hub?
Optimizer Hub 是 Azul Platform Prime 的一个组件,可让您的 Java 程序启动更快并持续保持高效运行。它由两项服务组成:
- 云原生编译器:提供服务器端优化解决方案,将 JIT 编译从 Zing 的 Falcon JIT 编译器 卸载到单独的专用服务资源,为 JIT 编译提供更多处理能力,同时将客户端 JVM 从本地进行 JIT 编译的负担中解放出来。
- ReadyNow Orchestrator:记录并提供 ReadyNow 配置文件。这大大简化了 ReadyNow 的操作使用,并且无需配置任何本地存储来写入配置文件日志。ReadyNow Orchestrator 可以记录来自多个 JVM 的多个候选配置文件,并推广记录最好的配置文件。
Optimizer Hub 作为 Kubernetes 集群提供,您可以在云端或本地服务器上配置和运行它。它与您环境中的其他集群以及 Java 应用程序一起运行。
使用 ReadyNow 是否需要 Optimizer Hub?
绝对不是!正如我们在本系列前面的文章中所解释的,ReadyNow 已完全集成到 Zing 中。凭借 -XX:ProfileLogOut=<file> 和 -XX:ProfileLogIn=<file> 命令行选项,您可以在您的机器或生产服务器上从本地生成配置文件日志,并在同一台机器和其他机器上重复使用它们。
您可以将 Optimizer Hub 添加到生产环境中,以降低在更大规模系统中使用 ReadyNow 的操作复杂性。ReadyNow Orchestrator 服务可帮助您自动处理训练运行,通过从 JVM 实例卸载存储来简化配置文件日志文件的管理,以及更多。
使用 ReadyNow Orchestrator 的优势
使用 Optimizer Hub 的 ReadyNow Orchestrator 服务的一些优势:
- 集中式配置文件存储:ReadyNow Orchestrator 充当所有 JVM 配置文件的中央存储,让您无需在运行 Java 应用程序的实例上配置任何本地存储。这也简化了容器的使用,让您无需在每次构建新映像时配置持久存储或将配置文件烘焙到映像中。
- 配置文件训练:ReadyNow Orchestrator 会记录配置文件的多代训练结果,以生成最佳的优化配置文件。
- 配置文件提升:ReadyNow Orchestrator 会自动从运行相同 ProfileName 的多个 JVM 中收集候选配置文件,并执行训练运行,以生成最佳提升配置文件。
- 向 JVM 提供配置文件:ReadyNow Orchestrator 会自动将最佳配置文件提供给新启动的 JVM。
Optimizer Hub 的更多优势
ReadyNow Orchestrator 服务是 Optimizer Hub 的一部分,后者提供更多优势:
- 云原生编译器:这第二个服务包含在 Optimizer Hub 中,通过与 ReadyNow Orchestrator 紧密集成,进一步提升应用程序的预热速度。
- 灵活性:Optimizer Hub 作为 Kubernetes 集群提供,您可以在云端或本地服务器上配置和运行它。这为您提供了灵活的部署方式,以满足您的基础设施需求。
- 多种模式:Optimizer Hub 可以在多种模式下运行,包括仅 ReadyNow 模式。这种灵活性可让您在仅需要 ReadyNow Orchestrator 时,在 Kubernetes 集群中部署精简的 Optimizer Hub 组件,从而有利于资源管理。
- 定期更新:Optimizer Hub 包含与 Prime 版本同步的定期更新和错误修复,以确保最佳性能和兼容性。
- 监控:Optimizer Hub 提供有关编译的详细指标,您可以在监控工具中或配合提供的 Grafana 仪表板使用这些数据。
结语
尽管在 Zing 运行时环境中使用 ReadyNow 并不需要 Optimizer Hub 及其 ReadyNow Orchestrator,但它能够显著降低大型生产系统的操作复杂性。
下一篇:当 ReadyNow 只能在流量负载下进行编译时