【压测】Jemeter压测营销抽奖接口
2026/1/3...大约 1 分钟
两台4核8g模拟,一台部署中间件和监控、一台部署营销抽奖系统。
一、Tomcat、Mysql、Redis线程池连接配置
抽奖系统是IO密集型,AI推荐
经验法则:每个核心最佳线程数 ≈ 50-150
4核 × 100 = 400(正好在中值)初始配置Tomcat连接数为,后续压测逐渐上调找最优
server:
port: 8091
tomcat:
mbeanregistry:
enabled: true
max-connections: 8000 # 可适当降低,根据系统资源调整
threads:
max: 400 # 根据CPU核心数:CPU核数 * (1 + 平均等待时间/平均处理时间)
min-spare: 200 # 预热线程数,减少冷启动延迟
accept-count: 200 # 队列长度,不宜过长Mysql、Redis
对于抽奖系统(IO密集型):
Tomcat线程数 : DB连接数 : Redis连接数
400 : 80-120 : 200-300
(1) : (0.2-0.3): (0.5-0.75)
规则:
1. DB连接数 ≈ Tomcat线程数 × 0.25
2. Redis连接数 ≈ Tomcat线程数 × 0.6
3. 连接超时时间:Redis < DB < Tomcat

配置确定后部署,打包为镜像,运行时限制容器大小为4核8G。
# "-Xmx4g -Xms4g -XX:MaxMetaspaceSize=256m -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
docker run -d \
--name big-market \
-p 8091:8091 \
--cpus="4.0" \
--memory="8g" \
-e SPRING_PROFILES_ACTIVE=prod \
big-market-app:3.0配置成功,
三、开始压测
第一次压测:
Ramp-Up 为线程数的 1 / 10;循环次数 200 -> 400tps