Skip to content

Releases: kite88/y-http-bench

Release list

v1.0.0

Choose a tag to compare

@kite88 kite88 released this 27 Sep 16:02

首个版本:纯 Go 标准库实现的 HTTP 压测工具,单文件、零依赖、开箱即用。

能力

  • 三种压测方式:固定请求数 -n、固定时长 -d,两者同时给定则先到先停
  • -qps 全局限速:绝对时间表调度,不受 Windows 定时器精度(约 15.6ms)的限制
  • 可配置请求:任意方法、-H 自定义头(可重复)、-body / -body-file、支持 HTTP/2、-insecure 跳过证书校验
  • 报告:总请求数 / 失败数 / 成功率 / 平均 QPS / 吞吐量,延迟 Min · Avg · P50 · P90 · P95 · P99 · P99.9 · Max,以及状态码分布与错误分布
  • -dump-latency:流式导出逐请求 CSV(latency_ms, status, bytes, error)
  • Ctrl+C 优雅停止,并基于已采集的样本照常输出报告

统计口径

  • 延迟从请求发出算到读完响应体;限速模式下从该请求的「理想发出时刻」起算,修正 coordinated omission
  • 延迟用直方图统计(固定 256KB 内存,不保留全量样本,与请求量无关)
  • 网络层错误只计入失败数与错误分布,不参与延迟统计

产物

平台 归档 包内可执行文件
Windows y-http-bench-windows-<arch>.zip y-http-bench.exe
Linux / macOS / FreeBSD y-http-bench-<os>-<arch>.tar.gz y-http-bench(权限 0755,解压即可运行)

架构覆盖 amd64 / arm64 / 386 / armv7 / ppc64le / s390x / riscv64 / loong64,共 15 个平台。
checksums.txt 是全部 15 个归档的 SHA256(LF 换行,Linux 下可直接 sha256sum -c checksums.txt)。

注意

  • 交叉编译使用 CGO_ENABLED=0,域名解析走 Go 自带的纯 Go 解析器(不读 nsswitch.conf),个别内网域名的解析行为可能与本机构建不同
  • 压测的是被测服务而非本机网络,尽量在与被测机同机房 / 内网的中立机器上运行
  • 关注 P99 / P99.9 而不是平均值

完整用法与参数说明见 README。