网友回复
一、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%