Repolode
bojand

bojand/ghz

用于对 gRPC 服务进行基准测试和压力测试的命令行工具,支持并发、限速和多种输出格式。

Star
3,359
Fork
284
未关闭 Issue
101
最近提交
6天前

这是什么?

ghz 是一个用于测量 gRPC 服务性能的命令行工具,同时也可作为 Go 包调用。使用者指定主机和完整的方法名,并提供 .proto 文件或编译后的 protoset,工具便会发送请求并记录延迟和吞吐量。

压力模式可灵活配置:支持固定请求速率、固定并发工作数,也支持 step 和 line 调度,让 RPS 或并发数随时间逐步增加。测试可按请求数或持续时长结束,流式调用可设置消息间隔和流的生命周期。TLS、客户端证书、metadata 和 gzip 压缩均可配置。

结果可输出为摘要、格式化文本、JSON、CSV、HTML 或 InfluxDB 行协议格式。测试参数也可保存在 JSON 或 TOML 配置文件中。

核心功能

  • 01支持固定、step、line 三种方式调整 RPS 和并发数。
  • 02支持一元和流式 gRPC 调用,可使用 proto 文件或 protoset。
  • 03提供 TLS、客户端证书、自定义 authority 和 gzip 压缩选项。
  • 04结果可输出为摘要、格式化文本、JSON、CSV、HTML 或 InfluxDB 格式。
  • 05既可作为命令行工具使用,也可作为 Go 包引入。

适用场景

  • 在发布前对 gRPC 微服务进行压力测试。
  • 找出服务延迟开始恶化时的请求速率。
  • 在 CI 流水线中比较不同版本服务的性能。
  • 在启用 TLS 或压缩的情况下测试 gRPC 接口性能。

快速上手

  1. 1

    使用 Homebrew 安装

    brew install ghz
  2. 2

    或使用 Go(1.23 及以上)安装

    go install github.com/bojand/ghz/cmd/ghz@latest
  3. 3

    使用 proto 文件和主机地址对 gRPC 服务运行压测

使用前须知

  • 文档托管在外部网站 ghz.sh,而非代码仓库中。

收录于专题

标签

常见问题

ghz 是什么?
用于对 gRPC 服务进行基准测试和压力测试的命令行工具,支持并发、限速和多种输出格式。 ghz 是一个用于测量 gRPC 服务性能的命令行工具,同时也可作为 Go 包调用。使用者指定主机和完整的方法名,并提供 .proto 文件或编译后的 protoset,工具便会发送请求并记录延迟和吞吐量。
ghz 可以免费使用吗?用的什么许可证?
ghz 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
ghz 还在维护吗?
活跃维护中。ghz 最近一次提交是在 2026年11月1日。
ghz 适合用来做什么?
在发布前对 gRPC 微服务进行压力测试。 找出服务延迟开始恶化时的请求速率。 在 CI 流水线中比较不同版本服务的性能。 在启用 TLS 或压缩的情况下测试 gRPC 接口性能。
ghz 怎么安装和运行?
使用 Homebrew 安装: brew install ghz 或使用 Go(1.23 及以上)安装: go install github.com/bojand/ghz/cmd/ghz@latest 使用 proto 文件和主机地址对 gRPC 服务运行压测
在哪里获取 ghz?
源代码和安装说明在 GitHub 上:https://github.com/bojand/ghz

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目