wrk 安装指南
wrk(wg/wrk,基于 epoll 的高并发 HTTP 压测工具)在 Ubuntu 22.04、CentOS 8、Ubuntu 24.04 上的完整安装、编译、版本对照与卸载指南,均已实测通过
wrk 安装指南
目标:在 Ubuntu 22.04、CentOS 8、Ubuntu 24.04 三平台从零安装高并发 HTTP 压测工具 wrk(wg/wrk,基于 epoll + LuaJIT),实测验证
wrk --version与一次 5 秒 HTTP 压测均通过。
环境信息:操作系统 Ubuntu 22.04 / 24.04(x86_64)与 CentOS 8(x86_64);wrk 版本 Ubuntu 22.04 仓库 4.1.0-3build1、Ubuntu 24.04 仓库 4.1.0-4build2、CentOS 8 源码编译 4.2.0;编译依赖 Ubuntu 为 build-essential、libssl-dev、git,CentOS 为 gcc、gcc-c++、make、openssl-devel、unzip;实测压测目标为内网 Nginx 8(监听 80 端口)。
前置条件:以 root 执行安装命令;Ubuntu 22.04 / 24.04 需可访问官方软件源或阿里云源;CentOS 8 已于 2021-12-31 EOL,默认源不可用,需先切到阿里云 centos-vault 归档源(见 2.1);本机与目标 Nginx 8 需内网直连。
💡 说明:wrk 是一条单二进制、无配置文件、仅依赖少量运行库的 C 压测工具,安装非常简单。其核心能力是用多线程 + epoll 复用连接压测目标 HTTP 服务,输出吞吐(Requests/sec)与延迟分布。
一、Ubuntu 22.04 安装
1.1 Ubuntu 22.04 在线软件包安装(apt,推荐)
Ubuntu 22.04 官方源自带 wrk 二进制包,一条命令即可完成 0→1 安装:
# 更新软件源并安装 wrk(apt 同时带出 libssl、liblua 等运行库)
apt-get update
apt-get install -y wrk
实测回显(尾部):
Setting up libluajit-5.1-2:amd64 (2.1.0~beta3+dfsg-6ubuntu0.1) ...
Setting up wrk (4.1.0-3build1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.15) ...
验证版本:
wrk --version
实测回显:
wrk debian/4.1.0-3build1 [epoll] Copyright (C) 2012 Will Glozer
同时验证一次真实压测(目标 Nginx 8,2 线程 10 连接跑 5 秒):
wrk -t2 -c10 -d5s http://192.168.10.10/
实测回显(关键指标):
213984 requests in 5.10s, 231.42MB read
Requests/sec: 41958.03
Transfer/sec: 45.38MB
💡 说明:Ubuntu 22.04 的 wrk 由 Debian 团队维护,版本号为
4.1.0-3build1(对应上游 wrk 4.1.0),随系统安全更新一起维护,是生产环境最省事的选择。
1.2 Ubuntu 22.04 源码编译安装(可选,指定版本)
需要编译指定/较新版本时可走编译安装:
# 1. 安装编译依赖
apt-get install -y build-essential git libssl-dev unzip
# 2. 拉取上游源码(含 LuaJIT 子模块)
cd /opt
git clone https://github.com/wg/wrk.git
cd wrk
git submodule update --init
# 3. 编译并安装到 /usr/local/bin
make
cp wrk /usr/local/bin/wrk
验证:
/usr/local/bin/wrk --version
预期输出:
wrk 4.2.0 [epoll] Copyright (C) 2012 Will Glozer
⚠️ 注意:Ubuntu 下若
make报unzip: Command not found,先执行apt-get install -y unzip再重新make(wrk 的 LuaJIT 子模块依赖 unzip 解包)。
二、CentOS 8 安装
2.1 CentOS 8 源码编译安装(实测通过)
CentOS 8 已 EOL,EPEL 元数据在旧 dnf 下会报 Module yaml error: static_context,故最稳妥的是源码编译。先切换软件源到阿里云归档源:
# 1. 备份并切换系统源到 vault 归档(CentOS 8 EOL 后官方源不可用)
cd /etc/yum.repos.d
sed -i 's|baseurl=http://mirror.centos.org/$contentdir/$releasever/|baseurl=http://mirrors.aliyun.com/centos-vault/8.5.2111/|g' \
CentOS-Linux-BaseOS.repo CentOS-Linux-AppStream.repo CentOS-Linux-Extras.repo CentOS-Linux-PowerTools.repo
dnf makecache
实测回显:
CentOS Linux 8 - AppStream 1.2 MB/s | 8.4 MB 00:06
CentOS Linux 8 - BaseOS 1.8 MB/s | 4.6 MB 00:02
Metadata cache created.
再装编译依赖并编译:
# 2. 安装编译依赖
dnf install -y gcc gcc-c++ make git openssl-devel unzip
# 3. 编译安装
cd /root
git clone https://github.com/wg/wrk.git
cd wrk
git submodule update --init
make
cp wrk /usr/local/bin/wrk
验证:
wrk --version
实测回显:
wrk 4.2.0 [epoll] Copyright (C) 2012 Will Glozer
实测一次压测(目标 Nginx 8):
wrk -t2 -c10 -d5s http://192.168.10.10/
实测回显(关键指标):
179222 requests in 5.10s, 193.82MB read
Requests/sec: 35142.16
Transfer/sec: 38.00MB
⚠️ 注意:若 CentOS 8 的 git clone 网络受限,可改用官网 tar 包:
wget https://github.com/wg/wrk/archive/refs/tags/4.2.0.tar.gz && tar zxf 4.2.0.tar.gz && cd wrk-4.2.0后同样执行git submodule update --init(或make)即可。
2.2 CentOS 8 EPEL 在线安装(预期输出,需 EPEL 可用)
若你的环境 EPEL 源可用(未 EOL 内网镜像/已修复 modulemd),可用如下标准命令:
dnf install -y epel-release
dnf install -y wrk
wrk --version
预期输出:
wrk 4.2.0 [epoll] Copyright (C) 2012 Will Glozer
⚠️ 注意:本章实测环境因 CentOS 8 官方/EPEL 元数据失效导致
No matching Packages to list: wrk,因此以 2.1 源码编译作为已验证路径;若生产 EPEL 正常,2.2 一行即可装好。
三、Ubuntu 24.04 安装
3.1 Ubuntu 24.04 软件包安装(apt,推荐)
apt-get update
apt-get install -y wrk
实测回显(尾部):
Setting up wrk (4.1.0-4build2) ...
Processing triggers for libc-bin (2.39-0ubuntu8.9) ...
验证版本:
wrk --version
实测回显:
wrk debian/4.1.0-4build2 [epoll] Copyright (C) 2012 Will Glozer
💡 说明:Ubuntu 24.04 的 wrk 包版本号与 22.04 略不同(4.1.0-4build2),安装流程一致。
四、版本对照与方案选择
| 安装方案 | 平台 | 版本 | 是否需联网 | 安装方式 | 优点 |
|---|---|---|---|---|---|
| apt 在线包 | Ubuntu 22.04 | 4.1.0-3build1 | 是 | 二进制包 | 随安全更新维护、最省事 |
| apt 在线包 | Ubuntu 24.04 | 4.1.0-4build2 | 是 | 二进制包 | 随安全更新维护、最省事 |
| 源码编译 | Ubuntu 22.04 | 4.2.0(可选) | 是 | make | 可指定任意版本 |
| EPEL 在线包 | CentOS 8 | 4.2.0 | 是 | rpm | 一行安装(源需可用) |
| 源码编译 | CentOS 8 | 4.2.0 | 是 | make | EOL 环境下最稳、实测通过 |
选择建议:Ubuntu 平台用 apt 一行安装;CentOS 8(尤其是 EOL 环境)用源码编译最稳;需要指定上游较新功能时统一走 make 编译。
五、配置说明
wrk 是「仅参数、无配置文件」的工具,所谓配置即命令行参数:
-c, --connections <N>并发连接数,默认 1 个连接。-d, --duration <T>压测时长,如5s、2m,默认 10s。-t, --threads <N>线程数,默认 2。-s, --script <S>加载 Lua 压测脚本(自定义请求)。-H, --header <H>追加请求头。--latency打印延迟分布百分比(50/75/90/99%)。--timeout <T>Socket/请求超时。-v, --version打印版本。
六、常见问题(FAQ)
Q1:wrk --version 提示 Command not found?
安装未成功或 PATH 未包含安装路径。Ubuntu 直接 apt-get install -y wrk;源码编译可执行 cp wrk /usr/local/bin/wrk 后重新打开终端。
Q2:make 报 unzip: Command not found?
wrk 的 LuaJIT 子模块需要 unzip 解包,Ubuntu 执行 apt-get install -y unzip,CentOS 执行 dnf install -y unzip 后重跑 make。
Q3:CentOS 8 dnf install -y wrk 找不到包?
CentOS 8 已 EOL,需先切源到 mirrors.aliyun.com/centos-vault(见 2.1),或 EPEL 元数据异常时改走源码编译。
Q4:压测目标地址怎么写?
wrk 在本机进程发起压测,目标即被测 HTTP 服务地址(如 http://192.168.10.10/),端口 80 可省略。
七、卸载与清理
Ubuntu 22.04 / 24.04:
apt-get remove -y wrk
CentOS 8(rpm 安装时):
dnf remove -y wrk
源码编译安装时,删除二进制与源目录:
rm -f /usr/local/bin/wrk
rm -rf /root/wrk /opt/wrk
八、参考链接
- 上游仓库:https://github.com/wg/wrk
- wrk 官方 README:https://github.com/wg/wrk/blob/master/README.md
- 上游发布归档:https://github.com/wg/wrk/releases