一、背景说明
近期在给公司WAF上新规则,为了验证新规则对nginx性能所带来的消耗,需要进行压测,这里记录一下 wrk2
的安装与使用方法,以备后用。
二、wrk2 简介
wrk2
是一个基于 wrk
的 HTTP 基准测试工具,与 apache bench
(简称 ab
)类似,主要用于单机压测。wrk2
采用多线程设计,支持通过 lua
脚本自定义 HTTP 请求、处理响应、以及生成压测报告。其两个主要特点是:
- 高并发能力:利用多线程生成 HTTP 请求,能够模拟大量客户端请求,适合高负载的性能测试。
- 精确的延迟统计:提供详细的延迟分布(如
99.9999%
分位数),使其适用于性能分析和优化场景。
三、wrk2 安装
在 CentOS 系统中,wrk2
目前未加入默认的包管理库,因此需要自行编译安装。以下为安装步骤:
下载最新安装包:
wget https://github.com/Kong/wrk2/archive/refs/heads/master.zip
解压安装包:
unzip master.zip
进入目录并编译:
cd wrk2-master make
- 查看生成的
wrk
文件确认安装成功。 将
wrk
文件移动到系统路径:mv wrk /usr/bin
3.1 错误处理
在编译过程中可能会遇到 openssl
库缺失的报错:
src/wrk.h:11:25: fatal error: openssl/ssl.h: No such file or directory
解决方法是安装 openssl-devel
开发库,安装后重新执行 make
命令:
yum install openssl-devel
四、wrk2 命令参数
执行 wrk --help
查看命令支持的参数,常用的参数包括:
-c
:并发连接数-d
:测试持续时间-t
:使用的线程数,通常根据 CPU 核心数设置-R
:目标请求速率(QPS)
五、wrk2 使用示例
以模拟上篇文章中的测试场景为例,以下命令用 wrk2
发送 HTTP 请求:
wrk -t2 -c100 -d30s -R25000 http://10.0.100.38/
测试输出结果简洁明了,便于直观观察整体性能表现。
六、总结
wrk2
在单机压测方面表现出色,尤其在简单 HTTP 请求的场景中。不过在高并发或高延迟环境下,单机资源可能不足以支撑需求,因此采用分布式云压测工具可能会更合适。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。