拽拽
管理员组

性能测试工具wrk的安装及使用

wrk简介

wrk是针对HTTP协议的压测工具,最大特点是轻量、易上手、小线程大并发。


开发原理:利用操作系统特定的高性能io机制。


wrk安装

# 从github下载

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

# 进入项目

cd wrk 

# 编译

make 

 

 

# 将可执行文件移动到 /usr/local/bin 位置 可直接使用wrk

sudo cp wrk /usr/local/bin

插曲1:

编译过程中出错提示:src/wrk.h:11:25: fatal error: openssl/ssl.h: No such file or directory 


去插曲1:

原因:openssl/ssl.h 加载失败


解决方式:


# include <openssl/ssl.h>  

# 安装openssl

sudo apt-get install libssl-dev

# 或者

sudo yum install openssl-devel

安装完成



 


wrk参数说明

  Options:                                            

    -c, --connections <N>  跟服务器建立并保持的TCP连接数量  

    -d, --duration    <T>  压测时间           

    -t, --threads     <N>  使用多少个线程进行压测   

                                                      

    -s, --script      <S>  指定Lua脚本路径       

    -H, --header      <H>  为每一个HTTP请求添加HTTP头      

        --latency          在压测结束后,打印延迟统计信息   

        --timeout     <T>  超时时间     

    -v, --version          打印正在使用的wrk的详细版本信息

                                                      

  <N>代表数字参数,支持国际单位 (1k, 1M, 1G)

  <T>代表时间参数,支持时间单位 (2s, 2m, 2h)

wrk使用

# 线程数为 5,模拟 5 个并发请求,持续 1 分钟, 请求头 "ak:test"。

wrk -t5 -c5 -d1m -H"ak:test" http://xx.xx.xx.xx:xx

 

# --latency 可以查看响应时间分布

# -T30s 更新超时时间限制为30s

返回


 


返回说明


Running 1m test @ http://xx.xx.xx.xx:xxxx (压测时间30s)

  5 threads and 5 connections (共5个测试线程,5个连接)

  (平均值) (标准差)  (最大值)(正负一个标准差所占比例)

  Thread Stats   Avg      Stdev     Max   +/- Stdev

    (延迟)

    Latency    427.30us    2.96ms 201.19ms   99.86%

    (每秒请求数)

    Req/Sec     2.92k   218.16     3.57k    73.31%

  871877 requests in 1.00m, 105.60MB read (1min内处理了871877个请求,耗费流量105.60MB)

Requests/sec:  14507.24 (QPS 14507.24,即平均每秒处理请求数为14507.24)   

Transfer/sec:      1.76MB (平均每秒流量1.76MB)

 插曲2: 

返回报错:Socket errors: connect 0, read 7909, write 8131, timeout 11




error解读:


Socket errors: connect 0, read 7909, write 8131, timeout 11 

# 本次压测存在7909个读错误, 8131个写错误,11个超时

去插曲2:

原因:请求响应时间超过 wrk 的默认超时时间1秒


解决办法:增大超时时间限时,可以使用30s/60s


# -T30s 更新超时时间限制为30s

wrk -t5 -c5 -d1m -T30s -H"ak:test" http://xx.xx.xx.xx:xx


bulucc


————————————————

版权声明:本文为CSDN博主「bulucc」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/bulucc/article/details/123848575


#1楼
发帖时间:2022-5-30   |   查看数:0   |   回复数:0
游客组