接口性能测试报告

性能测试报告

测试环境
  • CPU 4core AMD Opteron 62xx class
  • MemTotal: 8061436 kB
  • nginx version: openresty/1.11.2.5
  • redis-cli 4.0.2
业务背景

redis数据结构

(1)hash:
[key]_mac: 已本地激活的号码,fieldmac,valueicntv_id
[key]_icntv_id: 已本地激活和尚未激活的号码,fieldicntv_id,valuemac:timestamp,尚未绑定的时候value-1
(2)list:
[key]_pool:记录该[key]池中尚未使用的号码,测试前已经写入了10万条数据
[key]_activation: value[icntv_id:mac:timestamp]值的长串,pop后进入MQ

需测试接口

1./auth 验证接口,验证号码和绑定是否一致
2./activate 绑定接口,传入mac绑定对应的号码
测试工具以及方法
  • ab

    apache所出http的benchmark工具,通过调整并发数测试不同并发下的接口表现情况,但无法调整post的body内容,测试脚本如下:

    ab -n 20000 -c 50 -k -T application/json -p post.txt http://xxx.xxx.xxx.xxx:8080/auth >> ab.log
    -c 并发数 
  • wrk

    ​一个开源http的benchmark工具,与ab不同的是支持lua脚本修改每次提交内容,测试脚本如下:

wrk -t1 -c600 -d10s -s scripts/mac_add.lua http://xxx.xxx.xxx.xxx:8080/auth >> wrk.log

涉及lua脚本如下:

counta = 190001

request = function()
    counta = counta + 1
    wrk.headers["Content-Type"] = "application/json"
    wrk.body = '{"mac":"'..counta..'"}'
    wrk.method = "POST"
    return wrk.format()
end
  • openresty的systemtap工具和FlameGraph工具

    生成火焰图的工具,分析lua程序的性能瓶颈.生成脚本如下,-p为master nginx的进程号:

    openresty-systemtap-toolkit-master/ngx-sample-lua-bt  -p 16518 --luajit20 -t 5 > wrk_600_c.bt
    openresty-systemtap-toolkit-master/fix-lua-bt wrk_600_c.bt > wrk_600_c_flame.bt
    FlameGraph-master/stackcollapse-stap.pl wrk_600_c_flame.bt > wrk_600_c_flame.cbt  
    FlameGraph-master/flamegraph.pl wrk_600_c_flame.cbt > wrk_600_c_flame.svg
测试结果
先说结论,后面有详细内容:

单机情况下,并发500情况下偶尔接口会有失败,/auth接口QPS在4000到5000,/activate接口QPS在3000到4000,平均响应时间在200ms以内

PS:wrk比ab感觉还要高效一点

  • ab: 所有请求post参数均相同,对于/activate接口测试参考不太大

    • 接口/auth,到600并发时开始失败,QPS在4500到5000,平均响应时间在200ms以内
    echo "===n-20000,c-600===="
    
    Server Software:        openresty/1.11.2.5
    Server Hostname:        xxx.xxx.xxx.xxx
    Server Port:            8080
    
    Document Path:          /auth
    Document Length:        75 bytes
    
    Concurrency Level:      600
    Time taken for tests:   27.057 seconds
    Complete requests:      100000
    Failed requests:        7361
       (Connect: 0, Receive: 0, Length: 7361, Exceptions: 0)
    Write errors:           0
    Keep-Alive requests:    99378
    Total transferred:      27682080 bytes
    Total POSTed:           21302982
    HTML transferred:       7512428 bytes
    Requests per second
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值