赞
踩
# Update the image to the most recent one: $ docker pull shipilev/openjdk $ docker pull shipilev/openjdk:17 $ docker pull shipilev/openjdk:11 # Run the latest version: $ docker run --rm -it shipilev/openjdk java -XX:+UseShenandoahGC -Xlog:gc -version [0.007s][info][gc] Using Shenandoah ... # Run the JDK 17 version: $ docker run --rm -it shipilev/openjdk:17 java -XX:+UseShenandoahGC -Xlog:gc -version [0.007s][info][gc] Using Shenandoah ... # Run the JDK 11 version: $ docker run --rm -it shipilev/openjdk:11 java -XX:+UseShenandoahGC -Xlog:gc -version [0.008s][info][gc] Using Shenandoah ...
GC(3) Pause Init Mark 0.771ms
GC(3) Concurrent marking 76480M->77212M(102400M) 633.213ms
GC(3) Pause Final Mark 1.821ms
GC(3) Concurrent cleanup 77224M->66592M(102400M) 3.112ms
GC(3) Concurrent evacuation 66592M->75640M(102400M) 405.312ms
GC(3) Pause Init Update Refs 0.084ms
GC(3) Concurrent update references 75700M->76424M(102400M) 354.341ms
GC(3) Pause Final Update Refs 0.409ms
GC(3) Concurrent cleanup 76244M->56620M(102400M) 12.242ms
OracleJDK和OpenJDK中都支持ZGC,阿里的DragonWell龙井JDK也支持ZGC但属于其自行对OpenJDK 11的
ZGC进行优化的版本。
【建议使用JDK17之后的版本,延迟较低同时无需手动配置并行线程数。】
分代 ZGC添加如下参数启用 -XX:+UseZGC -XX:+ZGenerational
非分代 ZGC通过命令行选项启用 -XX:+UseZGC
使用 adoptopenjdk:17 作为基础镜像,进行体验,创建名称为Dockerfile
的普通文本文件
#使用adoptopenjdk作为基础镜像,选择Java 17版本
FROM adoptopenjdk:17-jdk-hotspot
#设置工作目录
WORKDIR /app
#拷贝应用程序jar包到镜像中
COPY target/your-application.jar /app/your-application.jar
#暴露应用程序的端口(如果需要)
EXPOSE 8080
#设置启动命令,指定使用ZGC作为垃圾收集器
CMD ["java", "-XX:+UseZGC", "-jar", "your-application.jar"]
docker build -t your-image-name .
docker run -d -p 8080:8080 your-image-name
-Xmn
参数。-XX:TenuringThreshold
。-XX:ConcGCThreads
。-Xmx 值
(最大堆内存大小):ZGC最重要的一个参数,必须设置。ZGC在运行过程中会使用一部分内存用来处理垃圾回收,所以尽量保证堆中有足够的空间。设置多少值取决于对象分配的速度,根据测试情况来决定。-XX:SoftMaxHeapSize=值
:ZGC会尽量保证堆内存小于该值,在内存靠近这个值时会尽早地进行垃圾回收,但是依然有可能会超过该值。例如,-Xmx5g -XX:SoftMaxHeapSize=4g
ZGC会尽量保证堆内存小于4GB,最多不会超过5GB。
- 注意:安装过程需要 root 权限,所以ZGC默认没有开启此功能。
操作步骤:
$ echo 9216 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。