+
95
-

WRK性能测试与ab压测哪个更好?

WRK性能测试与ab压测哪个更好?

网友回复

+
15
-

一、wrk 

wrk 是一款针对 Http 协议的基准测试工具,它能够在单机多核 CPU 的条件下,使用系统自带的高性能 I/O 机制,如 epoll,kqueue 等,通过多线程和事件模式,对目标机器产生大量的负载。

wrk 的优势:

轻量级性能测试工具;

安装简单(相对 Apache ab 来说);

学习曲线基本为零,几分钟就能学会咋用了;

基于系统自带的高性能 I/O 机制,如 epoll, kqueue, 利用异步的事件驱动框架,通过很少的线程就可以压出很大的并发量;

支持lua脚本

wrk 的劣势

wrk 目前仅支持单机压测,后续也不太可能支持多机器对目标机压测,因为它本身的定位,并不是用来取代 JMeter, LoadRunner 等专业的测试工具,wrk 提供的功能,对我们后端开发人员来说,应付日常接口性能验证还是比较友好的。

centos安装

依次执行如下命令:

yum install git -y
git clone https://github.com/wg/wrk.git wrk
yum install unzip -y
yum install gcc -y
make
cp wrk /usr/local/bin/

使用方式:

$./wrk -c 100 -d 10 http://domain/path

其中,参数「c」表示的是并发,参数「d」表示的是整个测试持续的时间。此外,可以通过参数「t」来控制线程数(缺省值为 2),实际使用中可以视情况酌情增大。

示例,开2个线程,建立6个连接,持续请求百度5s

wrk -t 2 -c 6 -d 5s https://www.baidu.com
Running 5s test @ https://www.baidu.com
  2 threads and 6 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    15.97ms    3.58ms  36.06ms   86.53%
    Req/Sec   185.96     21.39   220.00     82.00%
  1862 requests in 5.03s, 27.90MB read
  Socket errors: connect 0, read 3, write 0, timeout 0
Requests/sec:    369.85
Transfer/sec:      5.54MB

使用脚本发送表单请求

# post.lua
wrk.method = "POST"
wrk.body   = "login=sammy&password=test"
wrk.headers["Content-Type"] = "appl...

点击查看剩余70%

我知道答案,我要回答