前言

紧接前2篇文章,我们今天来聊聊升级 Java11 之后的一写 Jvm 参数变化。Java11 删除掉了 cms 垃圾回收器,如果你升级到了 Java11 但是 Jvm 参数仍然使用 cms 垃圾回收器参数时控制台会报错,甚至会启动失败。

OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
Unrecognized VM option 'ParallelCMSThreads=2'
Did you mean 'ParallelGCThreads=<value>'? Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

JAVA11 JVM 启动参数

G1GC 配置项:

c2430f714fa32f5fb8cde826dd1aee80.png

b0206d0b78d015f1ab69591a8dc236d6.png

G1GC log 配置详细说明:

5bc5f7fdffba61aae14d7ab20eb49189.png

示例配置

-server
-Xmx4g
-Xms4g
-Xss256k
-XX:MaxDirectMemorySize=256m
-XX:+UseG1GC 
-XX:+UseCompressedOops 
-XX:+UseCompressedClassPointers
-XX:+SegmentedCodeCache 
-verbose:gc
-XX:+PrintCommandLineFlags
-XX:+ExplicitGCInvokesConcurrent
-Djava.security.egd=file:/dev/./urandom
-Xlog:gc*,safepoint:/data/log/${SERVICE_NAME}/gc.log:time,uptime:filecount=100,filesize=50M

G1GC 不必明确设置新生代大小,其自动调优也十分可靠,对于停顿时间往往在长时间运行后可以达到预期效果。 不建议进行过多的配置,对于 gc log 笔者认为还是很有必要,各位同学可以按照自己的实际需求进行配置。

以上内容都是我自己的一些感想,分享出来欢迎大家指正,顺便求一波关注

作者:冷冷gg

出处:「是时候升级java11了」虚拟机Jvm参数设置 - 掘金

82379ae88f514320ba90006836da0463.gif
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐