wg/wrk 轻量级压测
说明:环境是 centos,不过现在 centos 免费版本不再更新和维护了,所以大家可以用阿里云的或者用 ubuntu 内核
用的 https://github.com/wg/wrk.git 有 35k star
然后据我了解,windows 用 wrk 压测有点麻烦,我也试过,把方法,放在最后了
一、安装 wrk
shell
yum install -y gcc make openssl-devel #安装编译工具、openssl开发包以及其他必要的依赖项
git clone https://github.com/wg/wrk.git
cd wrk
make # 编译
cp wrk /usr/local/bin/ # 将wrk可执行文件移动到系统路径中,这样它就可以在任何位置运行,确保`/usr/local/bin/`在系统的`$PATH`环境变量中。
如果没有 git ,就安装一下
shell
yum install git
二、开始压测
wrk -t12 -c400 -d30s http://127.0.0.1:8888/manage/getManageStatisticsAll?x-token=
-t12
:使用12个线程进行测试。-c400
:使用400个并发连接进行测试。-d30s
:运行测试持续30秒。- 参数意思参考:https://github.com/wg/wrk
go
12 threads and 400 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 37.76ms 18.14ms 232.05ms 72.32%
Req/Sec 0.89k 159.11 1.56k 69.98%
317812 requests in 30.07s, 146.70MB read
Non-2xx or 3xx responses: 317812
Requests/sec: 10567.92
Transfer/sec: 4.88MB
使用wrk工具进行了HTTP基准测试,使用了12个线程和400个连接。以下是测试结果的一些关键指标:
平均延迟(Latency):37.76毫秒
延迟标准差(Stdev):18.14毫秒
最大延迟(Max):232.05毫秒
平均请求数(Req/Sec):0.89k(即每秒处理的请求数量为890)
请求数量的标准差(Stdev):159.11
最大请求数(Max):1.56k(即最多每秒处理1560个请求)
总请求数:317,812
总传输数据量:146.70MB
非2xx或3xx响应的请求数:317,812(即所有请求都返回了非成功的状态)
根据测试结果,平均每秒处理的请求数为10,567.92,传输速率为4.88MB/s。
windows 版本用 wrk
go
在Windows上使用wrk工具进行基准测试需要进行一些额外的步骤。以下是在Windows上使用wrk的一般步骤:
安装依赖项:
Visual C++ Redistributable for Visual Studio 2015:您可以从Microsoft的官方网站下载并安装此依赖项。
OpenSSL:您可以从https://slproweb.com/products/Win32OpenSSL.html下载并安装适用于您的Windows版本的OpenSSL。
下载wrk源代码:
访问wrk的GitHub仓库:https://github.com/wg/wrk
点击"Code"按钮,然后选择"Download ZIP"来下载wrk的源代码。
解压缩wrk源代码:
将下载的ZIP文件解压缩到您选择的目录中。
构建wrk:
打开命令提示符或PowerShell,并导航到wrk源代码目录。
运行以下命令来构建wrk:
Copy
cd wrk-master
cmake -B build -DCMAKE_BUILD_TYPE=Release .
cmake --build build --config Release
构建完成后,您将在wrk-master\build\Release目录中找到生成的wrk可执行文件。
运行wrk:
在命令提示符或PowerShell中,导航到生成的wrk可执行文件所在的目录。
使用类似于以下命令的语法运行wrk:
Copy
wrk.exe -t12 -c400 -d30s http://example.com
将http://example.com替换为您要测试的目标URL。