5.3 执行环境与资源配置


5.3 执行环境与资源配置

本节摘要:压测结果准不准,环境配置是关键。本节讲压测机配置、被测环境隔离、监控配置——保证压测结果可信。

上手前先明确

阅读完本节,你应当能够:

  1. 配置压测机资源
  2. 隔离被测环境
  3. 部署监控采集

概念脉络

一、压测机配置

压测机本身要够强,否则自己先成瓶颈:

  • CPU/内存:单机模拟几百到一两千并发,内存建议 8G+
  • JVM 调优:调大堆内存,HEAP=-Xms4g -Xmx4g
  • 网络:带宽够,离被测环境近,避免网络成瓶颈
  • 别装 GUI 跑压测:用非 GUI 模式省资源

图 5-3 执行环境配置

图 5-3 执行环境配置

二、被测环境隔离

  • 独立测试环境:别在生产测,也别和其他业务共享环境
  • 配置接近生产:硬件、版本、数据量尽量接近生产,否则测了白测
  • 数据量足够:测查询性能要有足够数据,空表测不出真实性能
  • 预热:压测前先跑一轮预热缓存、JIT,避免冷启动影响

三、监控部署

压测时全链路监控:

  • JMeter 侧:Backend Listener 推 InfluxDB,Grafana 看 TPS/RT
  • 被测系统:CPU/内存/磁盘/网络(top/vmstat/iostat 或 Prometheus node_exporter)
  • 应用:JVM GC、线程池、连接池(APM 或 JMX)
  • DB/中间件:慢查询、连接数、缓存命中率
  • APM:SkyWalking/Pinpoint 看请求链路,定位慢在哪层

四、压测机 JVM 调优

# 调大堆内存 set HEAP=-Xms4g -Xmx4g set GC_ALGO=-XX:+UseG1GC

五、避免压测机成瓶颈

  • 单机别超 JVM 承受,再高用分布式
  • 压测机 CPU/网络别打满,否则测的是压测机不是被测系统
  • 用非 GUI 模式,关调试元件

⚠️ 常见坑:压测机自己先成瓶颈——CPU 打满、OOM,测出来的是压测机性能不是被测系统。压测机要够强或用分布式。

💡 关键直觉:压测结果准的前提是压测机和环境都不是瓶颈。压测机够强/JVM 调大/非 GUI,被测环境独立接近生产,监控全链路。

核心回顾

  • 压测机:CPU/内存够、JVM 堆调大、非 GUI、网络近被测环境。
  • 被测环境:独立测试环境、配置接近生产、数据量足够、预热。
  • 监控:JMeter Backend + 系统资源 + 应用 JVM + DB/中间件 + APM 全链路。
  • 避免压测机瓶颈:单机别超 JVM 承受,再高用分布式,CPU/网络别打满。
  • 压测结果准的前提是压测机和环境都不是瓶颈。

下一节讲结果分析——测完怎么看数据出结论。

环境准备

压测执行环境需要精心准备:压测机与被测系统网络隔离(避免相互影响);压测机配置充足(CPU 多核、内存充裕、禁用超线程干扰);操作系统调优(文件句柄数、TCP 端口范围、timewait 回收);JDK 参数(堆内存 Xmx、GC 策略)。

资源配置建议

资源 建议 说明
压测机 CPU 8 核以上 线程调度开销大
压测机内存 16G+ 结果缓存与线程栈
JVM 堆 4-8G 避免频繁 GC
文件句柄 65535+ 大量连接需要
TCP 端口 扩大范围 避免端口耗尽

环境检查清单

执行前检查:压测机负载(top 观察空闲);网络延迟与带宽(ping/iperf);被测系统监控已开启;测试数据就绪;防火墙规则正确。环境问题导致的压测失真(如网络拥塞、句柄耗尽)是最常见的误报来源,务必先排除环境因素再下结论。

资源检查命令

压测前用系统命令确认环境:Linux 下用 ulimit -n 查文件句柄限制(需 65535 以上)、free -h 查内存、top 观察负载;Windows 下用 netstat 查端口占用与 TIME_WAIT 数量。若端口耗尽(TIME_WAIT 过多),调整注册表 TcpTimedWaitDelay 或改用长连接减少端口切换。网络层面用 ping 测延迟、iperf 测带宽,确认压测链路不成为瓶颈。

JVM 参数示例

常用 JMeter JVM 调优参数(bin/jmeter 脚本中 HEAP 设置):

HEAP="-Xms4g -Xmx4g" GC="-XX:+UseG1GC -XX:MaxGCPauseMillis=100"

大并发场景适当调大堆内存并采用 G1 垃圾回收器,减少 Full GC 停顿对压测结果的影响。

压测环境与被测环境的隔离:网络隔离(专线或独立 VLAN 避免干扰);资源隔离(压测机专用,不跑其他任务);数据隔离(测试数据与生产数据分离)。隔离不彻底会导致结果失真(网络竞争、资源抢占),严谨的压测环境是可信结果的必要条件。

环境验证

执行前做环境验证:跑一次小规模冒烟(10 线程 1 分钟),确认链路、数据、监控都正常;对比压测机与被测系统的时间(NTP);验证结果文件可写入(磁盘空间);确认防火墙与端口。冒烟通过后再跑正式场景,避免浪费大规模压测的资源。

总结:执行环境的规范准备是压测结果可信的前提。资源调优、隔离设计、冒烟验证三步缺一不可,环境问题导致的失真往往比被测系统本身的问题更难发现,务必在正式压测前排除。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U