jvm

浅谈Could not create the Java Virtual Machine.

错误如下:

1
2
3
4
5

Conflicting collector combinations in option list; please refer to the release notes for the combinations allowed
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

叙述:

​ 这个问题的发生是在我把springBoot项目改造为dubbo项目时发生。当时改造完后再测试环境用脚本启动是正常的,但是在生产环境就发生了如上问题的导致项目无法运行。

脚本如下:

当时出现这个问题第一反应就是启动脚本出现了问题:直接看了Error的错误语句然后去百度,走了很多弯路。

弯路:以为是jdk版本的问题、可能是服务器空间不足,又认为可能是脚本中存在大小写或者中文格式的问题。

排查了一段时间发现都不是。后来仔细看了下错误提示,第一句才是关键:Conflicting collector combinations in option list; please refer to the release notes for the combinations allowed

这里很明显提示了你:列表收集器组合有问题(这个问题深深的告知了我遇到问题一定要仔细看错误日志、一定要仔细)。

所以问题最后的处理就是去掉图中标明地方的:-XX:+UseG1GC

重点

这个脚本在测试环境是可以正常运行的,但是在生产环境就必须去掉-XX:UseG1GC才能运行。不然就会提示上面的错误。

后来百度搜索了一番有资料说明是java自身中这个UseG1GC确实存在bug。有时候正常有时候就会有问题(这个我也不知道真假)。

java官方地址:

https://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html

https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html