Skip to content
wryyyds7Public

About

Surge - 云原生性能压测平台(对标 k6/vegeta/fortio,K8s Job 弹性分片调度)

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Surge — 云原生性能压测平台

对标 k6 / vegeta / ghz / fortio 的云原生压测平台。基于 Go 实现高性能并发引擎,通过 K8s Job 弹性调度压测 Worker,压完即销毁。

当前进度(M1 单机并发引擎)

已完成的功能链(每一条都有真实测试,非 mock):

功能链 实现 真实测试
无锁令牌桶限速器 internal/engine/limiter 假时钟 + 假 ticker 确定性测试,RPS 精度 < 1%
VU 池 internal/engine/vupool 并发 / 背压 / drain / 在途计数 4 组测试
HTTP driver internal/engine/drivers/http httptest 真实服务验证连接复用 / 短连接 / ctx 取消
并发引擎编排 internal/engine 端到端真实发压,RPS 精度 99.98%
压测 CLI cmd/surge-worker 对真实 echo-server 发压
压测靶场 cmd/echo-server 返回 1KiB 响应体(对齐 R2 口径)

快速开始

# 1. 启动靶场(独立终端)
go run ./cmd/echo-server -addr :8080

# 2. 发压(另一终端)
go run ./cmd/surge-worker -url http://127.0.0.1:8080/ -rps 5000 -vus 200 -duration 5s

# 3. 短连接模式
go run ./cmd/surge-worker -url http://127.0.0.1:8080/ -rps 2000 -no-keepalive

实测结果(本地回环,Windows/386 工具链)

场景 目标 RPS 实测 RPS 错误 平均延迟
长连接 500 RPS 500 500.0 0 17µs
长连接 5000 RPS 5000 5013.5 0 89.7µs
长连接 10000 RPS 10000 10047.7 0 501µs
短连接 2000 RPS 2000 2011.9 0 652.9µs
极限吞吐(benchmark) — ~59000 RPS 0 —

⚠️ R2 基线(keep-alive 2 万 RPS)要求在 Linux + amd64 + 2C4G 独占核 上测量。当前开发机是 Windows + 386 工具链,1 万 RPS 零失败已验证引擎逻辑正确性;2 万 RPS 需在目标环境跑 benchmark。

架构(设计文档 v0.2.0)

完整设计见 docs/:

  • 00-overview-and-architecture-baseline.md — 架构基线(唯一事实源)
  • 01-requirements-prd.md — 需求 PRD(44 条 Must)
  • 02-backend-design.md — 后端设计(并发模型 / 限速器 / 调度)
  • 03-frontend-design.md — 前端设计
  • 04-testing-strategy.md — 测试策略
  • 05-quality-engineering.md — 质量工程

并发引擎三件套

分发 goroutine → 令牌桶(L1 限速) → VU 池(L3 并发护栏) → HTTP driver(连接复用)
  • 令牌桶:fillLoop 单写者 + 多读者原子扣减,无 CAS、无锁、无伪共享
  • VU 池:固定 goroutine + channel 背压,per-VU 状态无锁
  • HTTP driver:keep-alive 连接复用(R2 长连接口径)

测试

go test ./...          # 全部单元/集成测试
go test ./... -bench=. -benchmem   # 性能 benchmark

目录结构

cmd/
  echo-server/     # 压测靶场(1KiB 响应体)
  surge-worker/    # 压测执行单元(M1 单机版)
internal/engine/
  limiter/         # 无锁令牌桶限速器
  vupool/          # VU 池
  drivers/http/    # HTTP driver
  engine.go        # 编排层(Engine)
docs/              # 全套设计文档(v0.2.0)

Roadmap

  • M1 单机并发引擎(令牌桶 + VU 池 + HTTP driver + 真实压测验证)
  • M2 K8s Job 调度(分片 Worker + telemetry 上报)
  • M3 gRPC / WebSocket 协议 + 场景 DSL
  • M4 console-server + web-console 前端

About

Surge - 云原生性能压测平台(对标 k6/vegeta/fortio,K8s Job 弹性分片调度)

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages