GO:使用WRK对web系统做性能测试

负载测试、压力测试、性能测试

负载测试:测试不同负载下系统的响应时间、数据吞吐量、系统占用资源等(CPU、内存),以发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。
压力测试:最大负载的负载测试,目标是为了发现系统的最大负载。
性能测试:希望获得不同情况下的系统性能指标,可能是是在同样负载情况下改变系统的结构、改变算法、改变硬件配置等等来得到性能指标数据。例如web系统中的3/5/10原则。

wrk做性能测试

安装wrk(Mac)

brew install wrk

使用方式

使用方法: wrk <选项> <被测HTTP服务的URL>                            
  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 -t15 -c1500 -d1m --latency http://10.227.xx.xx:8080
  # 模拟15个线程,1500个连接,测试持续时间为1分钟
结果:
Running 1m test @ http://10.227.xx.xx:8080  #测试1分钟
  15 threads and 1500 connections  # 15个线程,1500个连接
  Thread Stats   Avg      Stdev     Max   +/- Stdev   
 				(平均值)	  (标准差)  (最大值) (平均值正负一个标准差的比例)
    Latency    93.38ms   24.82ms 566.24ms   86.45%
   	(延时)
    Req/Sec   169.89     80.30   495.00     66.85%
 	(正在处理的请求数)
  Latency Distribution
    (时延分布)
     50%   90.17ms
     75%  101.95ms
     90%  114.75ms
     99%  200.56ms
  151466 requests in 1.00m, 108.47MB read  (1分钟处理了151466个请求,读取了108.47MB的数据)
  Socket errors: connect 1262, read 0, write 0, timeout 0
Requests/sec:   2520.29  (每秒处理2520.29个请求)
Transfer/sec:      1.80MB   (每秒读取1.8MB的数据)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值