{"repo":"link1st/go-stress-testing","free":true,"listed":false,"github":"https://github.com/link1st/go-stress-testing","clone":"git clone https://github.com/link1st/go-stress-testing.git","description":"go 实现的压测工具，ab、locust、Jmeter压测工具介绍【单台机器100w连接压测实战】","language":"Go","stars":4397,"topics":["golang","stress-testing","qps","grpc"],"license":null,"category":"networking-infra","readme_excerpt":"go实现的压测工具【单台机器100w连接压测实战】 本文介绍压测是什么，解释压测的专属名词，教大家如何压测。介绍市面上的常见压测工具(ab、locust、Jmeter、go实现的压测工具、云压测)，对比这些压测工具，教大家如何选择一款适合自己的压测工具，本文还有两个压测实战项目： - 单台机器对 HTTP 短连接 QPS 1W+ 的压测实战 - 单台机器 100W 长连接的压测实战 - 对 grpc 接口进行压测 - 支持 http1.1 和 2.0 长连接 简单扩展即可支持 私有协议 目录 - 1、项目说明 - 1.1 go-stress-testing - 1.2 项目体验 - 2、压测 - 2.1 压测是什么 - 2.2 为什么要压测 - 2.3 压测名词解释 - 2.3.1 压测类型解释 - 2.3.2 压测名词解释 - 2.3.3 机器性能指标解释 - 2.3.4 访问指标解释 - 3.4 如何计算压测指标 - 3、常见的压测工具 - 3.1 ab - 3.2 locust - 3.3 JMeter - 3.4 云压测 - 3.4.1 云压测介绍 - 3.4.2 阿里云 性能测试 PTS - 3.4.3 腾讯云 压测大师 LM - 4、go-stress-testing go语言实现的压测工具 - 4.1 介绍 - 4.2 用法 - 4.3 实现 - 4.4 go-stress-testing 对 Golang web 压测 - 4.5 grpc压测 - 4.6 HTML测试报告与AI评分 - 5、压测工具的比较 - 5.1 比较 - 5.2 如何选择压测工具 - 6、单台机器100w连接压测实战 - 6.1 说明 - 6.2 内核优化 - 6.3 客户端配置 - 6.4 准备 - 6.5 压测数据 - 7、常见问题 - 8、总结 - 9、参考文献 1、项目说明 1.1 go-stress-testing go 实现的压测工具，每个用户用一个协程的方式模拟，最大限度的利用 CPU 资源 1.2 项目体验 - 可以在 mac/linux/windows 不同平台下执行的命令 go-stress-testing 压测工具下载地址 查看帮助信息 go-stress-testing-mac --help - 有 go 环境安装 安装最新版本 go install github.com/link1st/go-stress-testing@latest 安装路径在 echo $GOBIN 目录下，配置了 export PATH=$PATH:$GOROOT/bin:$GOBIN 可以在任意目录下执行 查看帮助信息 go-stress-testing --help 参数说明: -c 表示并发数 -n 每个并发执行请求的次数，总请求的次数 = 并发数 每个并发执行请求的次数 -u 需要压测的地址 - 压测结果展示 执行以后，终端每秒钟都会输出一次结果，压测完成以后输出执行的压测结果 压测结果展示: 参数解释: 耗时 : 程序运行耗时。程序每秒钟输出一次压测结果 并发数 : 并发数，启动的协程数 成功数 : 压测中，请求成功的数量 失败数 : 压测中，请求失败的数量 qps : 当前压测的 QPS (每秒钟处理请求数量) 最长耗时 : 压测中，单个请求最长的响应时长 最短耗时 : 压测中，单个请求最短的响应时长 平均耗时 : 压测中，单个请求平均的响应时长 错误码 : 压测中，接口返回的 code 码:返回次数的集合 2、压测 2.1 压测是什么 压测，即","default_branch":null,"files":null,"tree":[],"storefront":"/r/link1st","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/link1st/go-stress-testing/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}