Gatling 3.6.1服务启动失败,JDK8/14环境下报多垃圾回收器选中错误
报错场景
在Mac或Ubuntu设备上使用JDK 8或JDK 14.0.2环境启动Gatling 3.6.1版本失败,报错信息如下:
./gatling.sh GATLING_HOME is set to /Users/foo/work/software/gatling-charts-highcharts-bundle-3.6.1 Error occurred during initialization of VM Multiple garbage collectors selected Error occurred during initialization of VM Multiple garbage collectors selected
故障原因
Gatling 3.6.1的默认JVM启动参数同时配置了多套不同的垃圾回收器规则,默认适配JDK 11版本,和JDK 8、JDK 14的GC支持规则冲突,JVM初始化时检测到多个被选中的垃圾回收器,直接抛出异常终止启动。
解决步骤
- 进入Gatling解压目录下的
conf文件夹,打开gatling.conf文件,找到jvm-options配置段;如果没有找到对应配置,直接编辑启动脚本gatling.sh中的JVM参数部分 - 根据你使用的JDK版本删除冲突的GC参数:
- JDK 8环境:保留
-XX:+UseParNewGC、-XX:+UseConcMarkSweepGC参数,删除所有带UseG1GC、ZGC的GC相关参数 - JDK 14环境:保留
-XX:+UseG1GC参数,删除所有带UseParNewGC、UseConcMarkSweepGC的GC相关参数(JDK 14已正式移除CMS回收器支持,配置该参数会触发冲突)
- JDK 8环境:保留
- 保存修改后的配置,重新执行
./gatling.sh即可正常启动
内容的提问来源于stack exchange,提问作者Rpj
相关产品推荐
相关产品推荐

