You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gatling本地运行预热完成后延迟90秒启动问题排查

解决Gatling仿真预热完成后90秒延迟启动的问题

嘿,我之前也碰到过类似的情况!结合你贴的日志和pom配置来看,这个90秒的延迟大概率是由JVM DNS解析超时或者Gatling老版本的初始化逻辑bug导致的,给你整理几个靠谱的排查和解决方向:

1. 先排查JVM DNS解析的问题

Gatling在正式启动前,HTTP客户端会做一些网络初始化操作,要是本地DNS配置有问题,很容易触发默认的90秒超时。你可以在IntelliJ的Run Configuration里给VM options加几个参数试试:

-Dsun.net.inetaddr.ttl=30
-Djava.net.preferIPv4Stack=true
-Ddns.server=8.8.8.8

这些参数会强制JVM使用本地DNS缓存、优先IPv4,并且指定可靠的公共DNS服务器,能快速排查是不是DNS的锅。

2. 升级Gatling插件版本(重点!)

你用的是Gatling Maven插件3.0.1版本,这个版本属于比较早期的3.x版本,存在一些初始化阶段的网络检测bug,比如HTTP/2自动检测时的超时问题(你的日志里也显示HTTP/2 disabled,说明这个检测过程可能耗了不少时间)。直接升级到最新的稳定版就能解决大部分这类老bug:

<plugin>
<groupId>io.gatling</groupId>
<artifactId>gatling-maven-plugin</artifactId>
<version>3.9.5</version> <!-- 可以替换为Gatling官网最新稳定版 -->
<executions>
<execution>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>

3. 检查仿真代码里的启动延迟配置

看看你的仿真代码,有没有不小心给场景加了全局启动延迟?比如误写了nothingFor(90 seconds):

setUp(
  myScenario.inject(
    nothingFor(90 seconds), // 要是有这个配置,直接删掉或者改短时间
    atOnceUsers(1)
  )
)

这种低级错误有时候也会导致看起来像系统延迟的问题,先排查代码最省心。

4. 排除本地代理的影响

如果你本地开了代理服务器,Gatling的HTTP客户端可能在尝试连接代理时卡住超时。可以在src/test/resources/gatling.conf里(没有的话就新建一个)禁用代理:

http {
  proxy {
    enabled = false
  }
}

或者直接在VM参数里清空代理配置:

-Dhttp.proxyHost= -Dhttp.proxyPort= -Dhttps.proxyHost= -Dhttps.proxyPort=

内容的提问来源于stack exchange,提问作者Tech Newbie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:30:55