概述
OpenJ9 是一款由 IBM 开发并开源的 Java 虚拟机(JVM),现由 Eclipse 基金会管理(名为 Eclipse OpenJ9)。它旨在提供高性能、低内存消耗和快速启动时间,特别适用于云原生和容器化环境。
关键特性
-
低内存占用
优化内存管理,减少堆外内存使用,适合资源受限场景(如微服务、Kubernetes)。 -
快速启动
通过共享类缓存(Shared Classes Cache)和即时编译(JIT)优化,缩短应用启动时间。 -
灵活的垃圾回收(GC)
支持多种 GC 策略:- Gencon:分代收集,适合短期对象。
- Balanced:针对大堆内存优化,减少暂停时间。
- Metronome:实时应用的低延迟 GC。
-
AOT(提前编译)
将字节码预编译为本地代码,减少运行时开销。 -
兼容性
遵循 Java SE 标准,与 HotSpot JVM 兼容,无需修改代码即可切换。
历史背景
- 源自 IBM 的 J9 VM(用于 IBM Java 产品),2017 年开源并捐赠给 Eclipse 基金会。
- 与 OpenJDK 结合,形成完整的 Java 运行时(如 AdoptOpenJDK 或 IBM Semeru Runtime)。
使用场景
- 云原生应用:容器化部署时节省内存。
- Serverless 函数:快速启动提升冷启动性能。
- 长期运行服务:通过 GC 调优降低延迟。
这里,我们以OpenJ9 JDK 17为例 ,详细说明一下,如何在Ubuntu 24.04上安装该JDK。
下载
- https://adoptium.net/
- jdk-21.0.6+7_openj9-0.49.0-JDK-February 13, 2025
- jdk-17.0.14+7_openj9-0.49.0-JDK-February 13, 2025
- jdk-11.0.26+4_openj9-0.49.0-JDK-February 13, 2025
安装
解压
mkdir -p ~/.local/java/openj9/jdk17
lwk@qwfys:~/Downloads/.tmp$ ll -h
total 228M
drwxrwxr-x 2 lwk lwk 4.0K Mar 29 02:08 ./
drwxrwxr-x 9 lwk lwk 4.0K Mar 29 02:08 ../
-rw-rw-r-- 1 lwk lwk 228M Mar 29 01:34 ibm-semeru-certified-jdk_x64_linux_17.0.14.0.tar.gz
lwk@qwfys:~/Downloads/.tmp$
tar -zxf ibm-semeru-certified-jdk_x64_linux_17.0.14.0.tar.gz
lwk@qwfys:~/Downloads/.tmp$ ll
total 233120
drwxrwxr-x 3 lwk lwk 4096 Mar 29 02:08 ./
drwxrwxr-x 9 lwk lwk 4096 Mar 29 02:08 ../
-rw-rw-r-- 1 lwk lwk 238698266 Mar 29 01:34 ibm-semeru-certified-jdk_x64_linux_17.0.14.0.tar.gz
drwxr-xr-x 9 lwk lwk 4096 Feb 6 02:27 jdk-17.0.14+7/
lwk@qwfys:~/Downloads/.tmp$
mv jdk-17.0.14+7 ~/.local/java/openj9/jdk17
配置
tee -a ~/.bashrc <<-'EOF'
export JAVA_HOME=/home/lwk/.local/java/openj9/jdk17
export PATH=${JAVA_HOME}/bin:$PATH
EOF
查看
lwk@qwfys:~$ java -version
java version "17.0.14" 2025-01-21
IBM Semeru Runtime Certified Edition 17.0.14.0 (build 17.0.14+7)
Eclipse OpenJ9 VM 17.0.14.0 (build openj9-0.49.0, JRE 17 Linux amd64-64-Bit Compressed References 20250121_885 (JIT enabled, AOT enabled)
OpenJ9 - 3c3d179854
OMR - e49875871
JCL - 675a4171160 based on jdk-17.0.14+7)
lwk@qwfys:~$
参考文献
- Adoptium® Marketplace