ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Hey压测工具2个默认参数(-n 200、-c 50)从哪里来?什么时候必须修改它们?

Hey压测工具2个默认参数(-n 200、-c 50)从哪里来?什么时候必须修改它们? Hey压测工具2个默认参数-n 200、-c 50从哪里来什么时候必须修改它们【免费下载链接】heyHTTP load generator, ApacheBench (ab) replacement项目地址: https://gitcode.com/GitHub_Trending/he/heyHey 是一个轻量级的 HTTP 压测工具HTTP load generator也是 ApacheBenchab的现代化替代品。你只需要输入一行hey url它默认就会发出200 个请求-n 200用50 个并发工作进程-c 50打向目标服务器然后输出一份包含延迟分布、吞吐量、状态码等统计报告。这两个数字为什么恰好是 200 和 50它们有什么讲究什么时候必须改本文带你一次看懂。一、快速了解 Hey 默认压测参数-n 200要发送的请求总数默认 200-c 50并发 worker 数量默认 50也就是说什么都不带地运行hey https://example.com等价于告诉 Hey用 50 个并发进程帮我打完 200 个请求。每个 worker 会分到约200 ÷ 50 4个请求打完即输出报告。这两个默认值并不是写死在帮助文档里的而是直接硬编码在源码的命令行参数定义中见 hey.goc flag.Int(c, 50, ) n flag.Int(n, 200, )帮助文本里也明确标注了 Default is 200 / Default is 50README.md。二、-n 200 和 -c 50 从哪里来先说结论这两个数字没有任何行业标准是项目作者经验上的默认值。Hey 的前身叫 boom后来为避免命名冲突才改名 hey其设计目标是一条命令就能快速给 Web 应用打点负载。在这个目标下作者做了一次简单的权衡维度太小的代价太大的代价请求数 -n样本太少延迟分布P50/P99不平稳报告参考价值低压测耗时过长对目标服务器负担大并发数 -c并发太低测不出并发场景下的真实性能一上来就高并发容易误伤生产环境于是得到的默认值恰好落在一个黄金区间200 个请求样本量足以让 report.go 算出稳定的均值和延迟百分位同时整个压测通常几秒内就能跑完50 个并发能模拟出真实的并发压力又不至于对一台普通服务器形成DDoS 式打击。这也是为什么你可以放心地用默认参数对开发环境做一次冒烟式压测——负担可控但数据已经足够说明问题。三、-n 和 -c 之间有一条隐藏规则很多人不知道Hey 对这两个参数有一个硬性约束——总请求数不能小于并发数即-n必须 ≥-c。这条规则同样写死在入口校验里hey.goif num conc { usageAndExit(-n cannot be less than -c.) }如果你写hey -n 10 -c 50程序会直接报错退出。原理也很直观50 个 worker 要瓜分 10 个请求数学上就分不匀。在 requester.go 中每个 worker 拿到的任务量就是N/C整除所以n c时部分 worker 一个请求都分不到压测就失去了意义。实用建议如果你想要低并发应该先降-c例如-c 5 -n 50而不是保持 50 并发去配很小的-n。四、什么时候必须修改 -n 和 -c默认值适合快速摸底但以下 5 种场景你必须动手改1. 只想快速验证接口通不通降 -n、降 -c本地开发调试时200 个请求完全没必要hey -n 10 -c 1 http://localhost:8080/api/ping2. 要压出真正的性能瓶颈升 -n、升 -c默认参数对高并发服务器来说压力太小。常见做法是hey -n 10000 -c 200 https://example.com/api3. 担心压垮目标服务用 -q 限流 降 -c对生产环境压测最稳妥的方式是按速率而不是按并发控制压力hey -q 10 -c 5 -z 30s https://example.com-q 10表示每个 worker 每秒只发 10 个请求总 QPS 可精确控制不会一上来就打爆后端。4. 想做长时间的稳定性压测改用 -z-n 自动失效这是最容易被忽略的一点指定-z时长后-n会被忽略hey.go 中直接把请求数设为最大值压测改为跑多久而不是打多少hey -z 5m -c 50 https://example.com想观察内存泄漏、连接池耗尽等长时问题必须用这种模式。5. 想要机器可读的结果配合 -o csv长时压测 CSV 输出方便喂给监控系统画图hey -o csv -z 10m -c 100 https://example.com metrics.csv五、参数选择速查表场景推荐参数说明快速冒烟默认不改200 请求 / 50 并发几秒出报告本地接口调试-n 10 -c 1最小压力确认连通性生产安全压测-q 10 -c 5 -z 30s按 QPS 精确限速找性能瓶颈-n 10000 -c 200高并发高请求量长稳测试-z 5m -c 50-n自动失效按时间跑数据入库分析-o csv -z 10mCSV 流式输出六、一句话总结-n 200和-c 50是 Hey 作者为一条命令就能快速压测而设定的经验默认值样本够看报告、压力不误伤。它们写死在 hey.go 中并受-n ≥ -c的硬性约束。什么时候必须改当你需要更小的压力调试、更大的压力找瓶颈、可控的速率-q保护生产、或者更长的时长-z长稳测试时——默认参数只负责让你能跑起来真正有意义的压测数据来自你对这两个参数的主动调整。更多参数说明与示例可参阅 README.md 中的 Examples 部分。【免费下载链接】heyHTTP load generator, ApacheBench (ab) replacement项目地址: https://gitcode.com/GitHub_Trending/he/hey创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表