当前位置: 首页 > news >正文

wrk 压测工具教程(Ubuntu22 实战版)

目录

  • 🧩 wrk 压测工具教程(Ubuntu 实战版)
    • 一、wrk 简介
    • 二、Ubuntu 安装步骤
      • ✅ 1️⃣ 安装依赖
      • ✅ 2️⃣ 克隆源码并编译
      • ✅ 3️⃣ 安装到系统路径
    • 三、wrk 使用方法
      • 🚀 基本命令格式
      • ✅ 示例:
    • 四、实测结果解析
      • 1️⃣ **Running 30s test**
      • 2️⃣ **8 threads and 400 connections**
      • 3️⃣ **Thread Stats - Latency**
      • 4️⃣ **Thread Stats - Req/Sec**
      • 5️⃣ **Requests/sec**
      • 6️⃣ **Transfer/sec**
      • 7️⃣ **Non-2xx or 3xx responses**
    • 五、性能分析与调优建议
      • ⚙️ 8 核服务器推荐参数
    • 六、常见问题
    • 七、总结

🧩 wrk 压测工具教程(Ubuntu 实战版)


一、wrk 简介

wrk 是一款高性能的 HTTP 压测工具,由 Will Glozer 开发,采用 C 语言 + epoll + 多线程 实现,
能够在单机上制造出高强度、高并发的 HTTP 请求流量。

适合:

  • 接口吞吐量极限测试;
  • 服务端性能瓶颈分析;
  • 短时高负载压测(峰值性能验证)。

二、Ubuntu 安装步骤

✅ 1️⃣ 安装依赖

sudo apt update
sudo apt install build-essential libssl-dev git -y

✅ 2️⃣ 克隆源码并编译

git clone https://github.com/wg/wrk.git
cd wrk
make

编译完成后,当前目录会生成可执行文件 wrk

✅ 3️⃣ 安装到系统路径

sudo cp wrk /usr/local/bin/
wrk --version

若能输出:

wrk 4.2.0

表示安装成功 ✅


三、wrk 使用方法

🚀 基本命令格式

wrk -t<线程数> -c<连接数> -d<持续时间> <URL>

参数说明:

参数含义
-t启动的工作线程数(threads)
-c总并发连接数(connections)
-d压测持续时间(duration)

✅ 示例:

wrk -t8 -c400 -d30s http://10.1.8.79:80/v1/test

含义:

  • 使用 8 个线程
  • 总计 400 个并发连接
  • 持续 30 秒

四、实测结果解析

执行结果如下:

Running 30s test @ http://10.1.8.79:80/v1/test8 threads and 400 connectionsThread Stats   Avg      Stdev     Max   +/- StdevLatency    19.00ms    9.59ms 134.46ms   78.90%Req/Sec     2.71k   424.07     8.13k    72.58%648313 requests in 30.04s, 102.60MB readNon-2xx or 3xx responses: 648313
Requests/sec:  21578.14
Transfer/sec:      3.42MB

下面是逐项解析:


1️⃣ Running 30s test

压测持续时间为 30 秒,目标地址是 http://10.1.8.79:80/v1/test


2️⃣ 8 threads and 400 connections

wrk 启动了 8 个工作线程,共使用 400 个 TCP 连接。
每个线程大约维护 400 ÷ 8 = 50 个连接。


3️⃣ Thread Stats - Latency

Latency    19.00ms    9.59ms 134.46ms   78.90%

含义:

指标解释结果分析
Avg平均响应时间19.00ms
Stdev标准差(延迟波动)9.59ms,延迟较稳定
Max最大响应时间134.46ms
+/- Stdev延迟集中程度78.9%,说明绝大多数请求分布在平均值附近

📘 结论:延迟整体稳定、响应速度快。


4️⃣ Thread Stats - Req/Sec

Req/Sec     2.71k   424.07     8.13k    72.58%

含义:

指标解释
Avg (2.71k)每线程平均每秒请求数
Stdev (424.07)线程间速率波动
Max (8.13k)单线程最高速率
+/- Stdev (72.58%)表示约 73% 的线程速率接近平均值,负载均衡性良好

5️⃣ Requests/sec

Requests/sec: 21578.14

整体吞吐率为 21,578 请求/秒 (RPS)
这是当前压测参数下的平均性能表现。


6️⃣ Transfer/sec

Transfer/sec: 3.42MB

每秒传输数据量约 3.42 MB/s
表示服务端返回的数据量相对较小(典型 JSON 短响应)。


7️⃣ Non-2xx or 3xx responses

Non-2xx or 3xx responses: 648313

所有请求都未返回成功状态码(2xx 或 3xx)。
即这 648,313 个请求全部失败(例如返回 404)。

📘 常见原因:

  • 请求方法不对(例如接口是 POST,你发了 GET);
  • 路径写错;
  • 服务端路由未匹配。

结合你的测试接口 /v1/add_task_google
很可能该接口只支持 POST 请求,而 wrk 默认使用 GET

因此虽然 RPS 很高,但业务层全部返回错误。


五、性能分析与调优建议

含义建议
线程数 (-t)控制 CPU 并行度一般等于 CPU 核数(如 8 核 → -t8)
连接数 (-c)控制并发连接量通常为线程数的 50~100 倍
压测时长 (-d)持续时间建议 ≥30s 以平滑波动
每线程连接数c ÷ t保持在 50~100 之间为佳

⚙️ 8 核服务器推荐参数

测试目的推荐命令
功能验证wrk -t8 -c200 -d15s URL
稳定性能测试wrk -t8 -c400 -d30s URL
极限压测wrk -t8 -c800 -d60s URL

六、常见问题

问题原因解决方案
Non-2xx 返回请求方法错误 / 接口不存在确认接口是 POST 还是 GET
socket: too many open files文件描述符限制执行 ulimit -n 65535
CPU 100%wrk 自身成为瓶颈降低并发或多机分压
结果波动大网络抖动 / 服务器限流增加测试时长或固定本地环境

七、总结

wrk 优点

  • 性能极高、负载强;
  • 结果简洁;
  • 适合峰值压测与极限吞吐分析。

⚠️ wrk 限制

  • 只能固定连接数,不能控制固定 RPS;
  • 默认只支持 GET 请求(POST 需 Lua 脚本扩展);
  • 不提供 JSON/图表化输出。

💡 建议

  • wrk → 测最大并发能力;
  • vegeta → 测稳定请求速率与延迟趋势。

两者结合能完整评估服务性能。

http://www.dtcms.com/a/578795.html

相关文章:

  • 郑州金水区网站建设动漫双人互动模板
  • 网站优化推广seo公司上海企业网站建设价格
  • Dataround非结构化数据同步
  • 29. HTTP
  • 人工智能+医疗卫生:如何加速AI医疗创新从实验室到临床的转化
  • 红酒公司网站建设手机网站比例尺寸
  • A 的 B 次方(信息学奥赛一本通- P1616)(快速幂模版题比较简单)
  • 用做网站使用的图片文化传媒公司广告宣传
  • google属于搜索引擎类网站.软件开发项目经理的工资一般多少
  • css学习9
  • 校园文化建设网站素材wordpress后台主题插件
  • 网站建设算什么行业口碑营销的策略
  • Hadess零基础学习,如何管理Composer(PHP)制品
  • 建网站什么样的域名最好aspcms 你的网站未安装 请先安装
  • 微服务入门级学习 - 微服务技术栈汇总
  • 温岭自适应网站建设深圳龙岗区景点
  • 公司网站建设及推广网站dns设置
  • 功能网站建设多少钱Wordpress内存占用高
  • 30岁做网站运营网站开发私单哪里接
  • 广东省建网站公司怎么做网站滑动图片部分
  • 公司网站用个人备案可以织梦网站图标更换
  • C++笔记——STL deque
  • 什么样的国家自然科学基金能够中标?
  • 算法322. 零钱兑换
  • 8818网站建设江门关键词优化排名
  • 网站可以个人备案吗弄美团网站的一般一个做赚多少钱
  • 自己做的网站和ie不兼容衡阳县住房和城乡建设局网站
  • 外贸推广网站建设公司装修设计
  • 免费网页设计作业素材搜索引擎优化应注意什么
  • seo站点山东省建设业协会网站