跳过正文

wrk性能测试工具

·136 字·1 分钟
Chuck Chan
作者
Chuck Chan
分享技术、思考与生活
目录

wrk
#

简介
#

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

使用
#

基本命令

Usage: wrk <options> <url>
  Options:
    -c, --connections <N>  总的http连接数
    -d, --duration    <T>  压测时间
    -t, --threads     <N>  使用多少个线程进行压测

    -s, --script      <S>  指定lua脚本路径
    -H, --header      <H>  为每一个http请求添加http头部
        --latency          在压测结束后,打印延迟统计信息
        --timeout     <T>  超时时间
    -v, --version          版本信息
    
  <N>代表数字参数,支持国际单位 (1k, 1M, 1G)
  <T>代表时间参数,支持时间单位 (2s, 2m, 2h)

测试报告

执行wrk,生成测试报告

wrk -t12 -c400 -d30s --latency http://www.baidu.com

Running 30s test @ http://www.baidu.com (压测时间 30s)
  12 threads and 400 connections (30个线程400个连接)
  Thread Stats   Avg(平均值)      Stdev(标准差)     Max(最大值)       +/- Stdev(正负标准差)
    Latency      420.66ms  				  448.67ms   					2.00s     			85.82%
    Req/Sec      12.28     					10.19    					  69.00     			77.28%
  Latency Distribution (延迟分布 应该是 p50 p90 p99)
     50%  284.48ms
     75%  549.36ms
     90%    1.03s
     99%    1.88s
  2562 requests in 30.07s, 26.73MB read (30s内总共发起了2562个请求)
  Socket errors: connect 158, read 0, write 0, timeout 256 (发生错误数)
Requests/sec:     85.20 (每秒请求数 即qps)
Transfer/sec:      0.89MB (每秒传输数据量)