压力测试报告

场景

  • 模拟 200 设备 × 5000 点位
  • 采用批量读取与快照返回

结果摘要

  • 单包 5000 点位读取(Mock)耗时:≤ 200 ms(见 TestScheduler_Stress_5000Points
  • API 快照返回:常量级(微秒级)

2026 Q3 SLA 三列对比(Phase B-11)

场景 lag P95 内存 drift 故障隔离 说明
Mock 10k(Q3 benchmark) ~7 ms ~4% N/A q3_10k_tag_benchmark_test.go
Modbus 仿真器 <50 ms 6/7 串行 modbus_protocol_test.go
ARMv7 待板端 <8% 目标 scripts/bench_armv7.sh 交叉编译就绪

结论

  • 满足“单网段 1000 点位并发读取延迟 ≤ 300 ms”的目标(在真实设备条件下需视网络与设备能力调优)

2026-07-05 回归压测(ScanEngine v5.2 补丁后)

对照 南向采集通道回归验证测试方案 §五 与 ScanEngine重构测试报告 §2.4。

执行命令

make bench-g007          # G007 调度吞吐
make bench-q3            # Q3 10k tag deadline
make test-soak-short     # SLA 短 soak(30s,五 gate)
CGO_ENABLED=0 go test ./internal/core/... -short -count=1

日志:_run_logs/2026-07-05_regression_bench_*.txt

结果

场景 指标 目标 实测 结果
G007 1000 设备 · 1s · mock 调度吞吐 ≥950 设备/s 976 设备/s ✅ PASS
  任务成功率 100% 29287/29287,failed=0
  scan_miss_deadline 0 0
  lag P95 0.57 ms
Q3 100×100 tag · 1s 吞吐 9663 pts/s ✅ PASS
  lag P95 <100 ms 1.08 ms
  miss_deadline 0 0
Short Soak 30s Release Gate 五 gate 全绿 PASS
core -short 功能/压测用例 全绿 PASS (~45s)

未执行项

原因
F 组 12h / 72h soak 运维级长跑,需 SOAK_DURATION=12h 或 nightly 流水线
Modbus 仿真器 6/7 串行压测(联机) 无本地 Modbus 模拟器集群
ARMv7 板端 bench scripts/bench_armv7.sh 板端执行

2026-07-05 结论:代码层压力与 SLA gate 全部 PASS;G007 较 2026-07-04(947/s WARN)提升至 976/s 达标。


2026-07-12 Mac 全面复测(ScanEngine / 万 Tag / 压力)

在 macOS 开发机上按仓库既有 Makefile / go test 路径复测「万 Tag」与 ScanEngine 引发的性能/压力场景;原始日志见 _run_logs/2026-07-12_mac_*

环境

OS macOS 12.7.6(darwin 21.6.0,x86_64)
CPU Intel Core i5 @ 2.7 GHz · 4 核
内存 8 GB
Go 1.26.4 darwin/amd64
仓库 commit 8daa1224
CGO_ENABLED 0

执行命令

# 万 Tag(Q3,含 -v 指标)
CGO_ENABLED=0 go test ./internal/core/ -run TestQ3_TenThousandTagBenchmark -count=1 -timeout=15m -v

# G007 调度吞吐
make bench-g007   # 或 go test … -run TestG007_DeviceThroughputBenchmark -v

# Soak 短门控
make test-soak-short

# ScanEngine / 边缘计算压力(含短窗 10k tag)
CGO_ENABLED=0 go test ./internal/core/ \
  -run 'TestScanEngine_Stress|TestScanEngine_TenThousand|TestEdgeComputeStress' \
  -count=1 -timeout=10m -v

结果

场景 指标 目标 实测 结果
Q3 万 Tag 100×100 · 1s · 60s lag P95 <100 ms 1.56 ms ✅ PASS
  miss_deadline 0 0
  heap drift <5% 0.00%
  吞吐 9823 pts/s
  成功率 100% 5894/5894,failed=0
  GC pause max <20 ms 0.10 ms
G007 1000 设备 · 1s · 30s 调度吞吐 ≥950 设备/s 986 设备/s ✅ PASS
  miss_deadline 0 0
  lag P95 0.72 ms
  成功率 100% 29580/29580
Short Soak 30s 集成门控 PASS ok ~78s
ScanEngine Stress 活动任务 ≤ limit PASS
10k 短窗TestScanEngine_TenThousandTagsBenchmark,3s 测量) lag P95 / miss <100ms / 0 1.13 ms / 0
  吞吐 10267 pts/s
EdgeCompute 高频合并 executed / coalesced 1 / 999
EdgeCompute 100 规则 burst executed / dropped 100 / 0
EdgeCompute 延迟 p50 / p99 <100ms 0 / 0 ms
EdgeCompute 队列丢弃 drops = failures 8 / 8

相对 2026-07-05

场景 2026-07-05 2026-07-12 Mac
G007 吞吐 976 设备/s 986 设备/s
Q3 lag P95 1.08 ms 1.56 ms
Q3 吞吐 9663 pts/s 9823 pts/s
Q3 miss 0 0

2026-07-12 结论:Mac 上万 Tag 与 ScanEngine 相关性能/压力用例 全部 PASS;G007 持续高于 950 设备/s 门禁。万 Tag 明细见 Q3 万 Tag 压测报告 §5

未执行项(与既有基线一致)

原因
Q3_BENCH_DURATION=7200 2h 长跑 可选加班验收,本次为 CI 等价 60s 窗口
Modbus 仿真器 / ARMv7 板端 无本机仿真器集群 / 无板端
72h Soak 运维级长跑,需 nightly

单元测试覆盖率门禁(2026-07-05)

阈值 基线 实测 结果
internal/core 语句覆盖率 ≥ 80% 60.3% 80.5% 达标
internal/core + internal/driver 汇总 ≥ 80% 57.7% 71.7% ⚠️ 未达
测试命令 CGO_ENABLED=0 go test ./internal/core/... ./internal/driver/... -short -count=1 -coverprofile=coverage.out
core -short 功能回归 全绿 PASS(~47s)
driver -short 全绿 PASS(~3min)
make test-soak-short 五 gate 全绿 PASS(~78s)

说明core ≥80% 门禁通过;合并 scope 受南向 driver 真实 TCP/会话路径制约仍为 71.7%。分包明细见 ScanEngine重构测试报告 §十一南向驱动测试报告 §八