gatling - 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 测试而不消耗内存并帮助使用不同的服务运行更长时间的测试
解决方案
首先,您没有提供您的 Gatling 版本。如果您使用的是旧版本,首先要做的是升级(截至目前最新版本为 3.4.1)。
然后,您没有描述您在测试中做了什么以及导致此 OOME 的原因。
最常见的原因是您的系统在负载下无法承受您向其施加的负载。在这种情况下,响应时间增加(可能超时),这增加了虚拟用户完成他们的场景/旅程的时间。如果您使用的是开放式工作负载模型(您可能应该这样做),那么随着新用户不断涌入,虚拟用户会不断堆积在内存中,而无需完成更改。
简而言之,你有一个问题,增加内存并不能解决它。您要么必须修复您的应用程序以承受这样的负载,要么如果您在那里过于雄心勃勃,请减少您的负载。
推荐阅读
- list - Dart 如何克隆地图列表
- python-3.x - 如何使用python解决具有递归约束的非线性动态优化
- python-3.x - 拟合多标签文本分类模型时的错误
- go - 转到通道未接收/打印发送到通道的最后一个值
- python-3.x - 命令行操作无法解析 f-string 和 python 3 打印参数
- c# - 如何在 .net framework 4.7 上使用 Mediatr 进行集成测试?
- arrays - 如何将 YAML 的子集转换为关联数组的索引数组?
- php - 将 Bootstrap 模式中表单中的信息保存到 PHP 会话中
- java - 平面 XML 到层次结构 XML
- json - 即使返回 HTTP 200,也不会调用 AJAX 成功函数