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

WireMock 并发发送多请求时出现超时问题该如何解决?

WireMock压测场景下跨请求超时问题优化方案

1. 禁用非必要的响应转换逻辑

  • 若压测场景无需动态响应生成,全局关闭响应模板功能:WireMock启动时添加参数 --disable-response-templating
  • 单Stub维度关闭多余转换器:定义Stub时指定 "transformers": [] 空置转换器列表,跳过默认转换逻辑
  • 优先使用精确路径/参数匹配规则,减少正则匹配、模糊匹配的计算开销

2. 配置测试场景专用缓存

  • 开启Stub缓存:WireMock启动时添加配置 stubCachingEnabled: true,缓存匹配成功的Stub规则,避免每次请求全量遍历所有Stub
  • 静态响应预加载:所有压测用、测试用的静态响应直接写入Stub定义,不要使用外部文件读取、动态生成逻辑,消除IO开销
  • 高频测试请求可单独配置内存缓存规则,相同请求直接返回预存响应,无需走完整匹配流程

3. 调整服务端线程与连接池配置

  • 调大Jetty服务线程参数,适配服务器性能:启动时添加参数 --jetty-threads-max=200(可根据服务器CPU核心数调整为核心数的2-4倍)、--jetty-accept-queue-size=1024,避免请求排队溢出
  • 调长HTTP连接keepalive时间,减少TCP握手开销:添加启动参数 --jetty-http-idle-timeout=30000
  • 条件允许的情况下可以配置双端口隔离:分别开放压测流量端口、测试请求端口,两类请求的处理线程池完全隔离,压测流量排队不会阻塞测试请求

4. 关闭非必要的附加功能

  • 压测阶段关闭请求日志与请求记录功能:启动时添加参数 --no-request-journal --verbose=false,消除日志写入、请求数据存储的性能开销
  • 禁用未使用的扩展插件、录制/回放功能,仅保留核心Stub匹配能力

5. JVM性能优化(针对Java版WireMock)

  • 分配足够的堆内存,避免堆内存不足触发频繁GC:启动时添加JVM参数 -Xms4G -Xmx4G(根据服务器内存调整)
  • 使用低停顿垃圾回收器,降低STW时长:添加参数 -XX:+UseG1GC -XX:MaxGCPauseMillis=100

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:36:04