HTTP压测工具Wrk 介绍和使用

wrk是一款高性能的HTTP压测工具,利用操作系统特定的高性能IO机制实现低线程高并发。本文介绍wrk的安装、使用方法及结果解析,包括线程与连接数设置、延迟与请求速率统计、错误类型分析等关键信息。

介绍

wrk是一款简单的HTTP压测工具,托管在Github上,https://github.com/wg/wrk.
wrk 的一个很好的特性就是能用很少的线程压出很大的并发量. 原因是它使用了一些操作系统特定的高性能 io 机制, 比如 select, epoll, kqueue 等. 其实它是复用了 redis 的 ae 异步事件驱动框架. 确切的说 ae 事件驱动框架并不是 redis 发明的, 它来至于 Tcl的解释器 jim, 这个小巧高效的框架, 因为被 redis 采用而更多的被大家所熟知.

安装

git clone https://github.com/wg/wrk.git  
cd wrk  
make  

使用 

wrk -t12 -c100 -d30s http://www.baidu.com  

 返回:

Running 30s test @ http://www.baidu.com
  12 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   300.59ms  210.80ms   1.99s    87.17%
    Req/Sec    28.25     15.33   121.00     68.12%
  10036 requests in 30.10s, 149.22MB read
  Socket errors: connect 0, read 29, write 0, timeout 24
Requests/sec:    333.47
Transfer/sec:      4.96MB

参数解释:

参数解释:

12 threads and 100 connections:
总共是12个线程,100个连接(不是一个线程对应一个连接)

latencyReq/Sec:
代表单个线程的统计数据,latency代表延迟时间,Req/Sec代表单个线程每秒完成的请求数,他们都具有平均值, 标准偏差, 最大值, 正负一个标准差占比。一般我们来说我们主要关注平均值和最大值. 标准差如果太大说明样本本身离散程度比较高. 有可能系统性能波动很大.

10036 requests in 30.10s, 149.22MB read
在30秒之内总共有10036个请求,总共读取149.22MB的数据

Socket errors: connect 0, read 29, write 0, timeout 24
总共有29个读错误,24个超时.

Requests/sec和Transfer/sec
所有线程平均每秒钟完成了333.47个请求,每秒钟读取4.96MB数据量

 

如果想看看响应时间的分布,可以增加--latency:

wrk -t12 -c100 -d30s --latency http://www.baidu.com 
Running 30s test @ http://www.baidu.com
  12 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   401.52ms  270.05ms   1.98s    91.39%
    Req/Sec    21.04     10.87    60.00     56.44%
  Latency Distribution
     50%  307.72ms
     75%  317.86ms
     90%  616.33ms
     99%    1.66s
  7487 requests in 30.10s, 111.42MB read
  Socket errors: connect 0, read 4, write 0, timeout 55
Requests/sec:    248.70
Transfer/sec:      3.70MB

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值