首页 > 解决方案 > Gatling 脚本因错误“进程退出并出现错误:137”而中止

问题描述

我正在尝试为不同的服务并行运行性能测试 4 小时,但流程在 1 小时内中止并抛出内存错误。一段时间后它抛出内存不足,堆内存错误

错误:来自线程 [GatlingSystem-akka.actor.default-dispatcher-4] 的未捕获错误:超出 GC 开销限制,由于 ActorSystem [GatlingSystem] java 启用了“akka.jvm-exit-on-fatal-error”,因此正在关闭 JVM .lang.OutOfMemoryError:超出 GC 开销限制

尝试过的方法:在 pom.xml 中更新了 jvm args

<jvmArg>-Xms512m</jvmArg>
 <jvmArg>-Xmx12048m</jvmArg>

有人可以建议任何方法来运行 Gatling 测试而不消耗内存并帮助使用不同的服务运行更长时间的测试

标签: gatlingscala-gatling

解决方案


首先,您没有提供您的 Gatling 版本。如果您使用的是旧版本,首先要做的是升级(截至目前最新版本为 3.4.1)。

然后,您没有描述您在测试中做了什么以及导致此 OOME 的原因。

最常见的原因是您的系统在负载下无法承受您向其施加的负载。在这种情况下,响应时间增加(可能超时),这增加了虚拟用户完成他们的场景/旅程的时间。如果您使用的是开放式工作负载模型(您可能应该这样做),那么随着新用户不断涌入,虚拟用户会不断堆积在内存中,而无需完成更改。

简而言之,你有一个问题,增加内存并不能解决它。您要么必须修复您的应用程序以承受这样的负载,要么如果您在那里过于雄心勃勃,请减少您的负载。


推荐阅读