wrk:现代 HTTP 性能测试工具(类cc)

wrk:现代 HTTP 性能测试工具(类cc)

wrk 是一个开源的高性能 HTTP 基准测试工具(HTTP benchmarking tool),由 Will Glozer 开发,专为测试 Web 服务器和 API 接口的并发性能而生。它能在单台多核机器上产生极高的负载,常用于测量服务器的 QPS(每秒请求数)、响应延迟、吞吐量等关键指标。

wrk 的 GitHub 项目地址:https://github.com/wg/wrk(星数超过 37k),至今仍是开发者、运维和性能测试人员的首选工具之一。

wrk 的核心优势
  • 极高性能:采用多线程 + 异步事件驱动模型(基于 epoll/kqueue),单机轻松模拟上万并发连接和数万 QPS。
  • 支持 LuaJIT 脚本:可以自定义复杂的请求逻辑(POST 数据、动态参数、自定义 Header、多阶段请求等),远超传统工具的灵活性。
  • 详细报告:提供延迟分布(平均/标准差/最大值/百分位)、每线程统计、总 QPS、传输速率等丰富信息。
  • 轻量高效:用 C 语言编写,二进制体积小,无需运行时依赖。
  • 与老工具 ab(ApacheBench)的对比
    • ab 是 1996 年的经典工具,默认 HTTP/1.0、无 Keep-Alive,并发能力弱(几千已到瓶颈)。
    • wrk 默认 HTTP/1.1 + Keep-Alive,更接近真实浏览器行为,QPS 通常比 ab 高几倍到几十倍。
安装方式

最简单的安装方式(适用于 Ubuntu/Debian 系统):

bash 复制代码
sudo apt update
sudo apt install wrk -y

其他系统:

  • CentOS/RHEL/Fedorasudo yum install wrksudo dnf install wrk

安装完成后运行 wrk -v 查看版本。

基本使用

标准命令格式:

复制代码
wrk -t<线程数> -c<并发连接数> -d<持续时间> <目标URL>

入门示例:

bash 复制代码
wrk -t8 -c200 -d30s http://example.com/api/test
  • -t8:使用 8 个线程(建议设为 CPU 物理核心数或 2 倍)。
  • -c200:保持 200 个 HTTP 连接同时活跃(关键参数,越大压力越大)。
  • -d30s:测试持续 30 秒(支持 10s、2m、1h 等格式)。

运行时会实时显示每个线程的统计,结束后输出完整报告。

注意事项
  • 高并发测试前建议提升系统文件描述符限制:ulimit -n 65535
  • 只在自己拥有完全控制权的服务器上进行压测,对他人服务器使用属于违法行为。
  • 测试结果受网络、目标服务器配置、接口复杂度等多因素影响。

wrk 以其简单、高效、强大的脚本能力,成为现代 Web 性能测试的标杆工具。无论是优化 API、对比框架性能,还是日常压测,wrk 都是首选。熟练掌握它,你就能轻松发现服务器的真实极限!

相关推荐
may_一一21 小时前
xpath定位:selenium和playwrightAnt Design / 表单类页面)
selenium·测试工具
小李独爱秋21 小时前
计算机网络经典问题透视:蜂窝网络切换如何“扼杀”你的TCP连接?
网络·网络协议·tcp/ip·计算机网络·php·信息与通信
daopuyun21 小时前
CNAS/CMA软件检测实验室源代码漏洞测试工具选型要求与比对
软件测试·测试工具·软件检测·cnas认可·cma认定
路由侠内网穿透.1 天前
本地部署代码托管解决方案 Gitea 并实现外部访问( Windows 版本)
运维·服务器·网络协议·gitea
Wpa.wk1 天前
接口自动化测试 - 请求构造和响应断言 -Rest-assure
开发语言·python·测试工具·接口自动化
AI_56781 天前
Postman接口测试提速技巧:批量请求+智能断言实践
测试工具·lua·postman
Luminbox紫创测控1 天前
整车自然暴晒与全光谱阳光模拟老化相关性研究
测试工具
北京耐用通信1 天前
耐达讯自动化Profinet转Devicenet网关:精细化工行业的“协议融合利器”
人工智能·物联网·网络协议·自动化·信息与通信
三水不滴1 天前
计算机网络核心网络模型
经验分享·笔记·tcp/ip·计算机网络·http·https