对http服务关键接口压测
对测试环境http服务中关键接口压测
以下测试数据为测试环境数据、非生产环境真实数据
压测目标
测试环境单点resin 单点dubbo mongoDB
以订单列表接口为压测对象
压测工具
siege 2.7.0
测试用例
${thread_num} 线程并发访问数量
${request_num} 每个线程请求接口次数
thread_num 200 400 600 800 1000 1200 1400 1600 1800 2000
request_num 50
siege -c ${thread_num} -r ${request_num} --log=/data/test_data/data.txt --header "${header}" orderlist
QPS
可以看出当并发达到1600时候,qps达到峰值2113.之后随着并发的增加,qps逐渐降低
并且出现siege aborted due to excessive socket failure,该问题是建立tcp过程中无法拿到临时端口导致无法建立链接
查看uc-rest测试机tcp链接状态
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
TIME_WAIT 11186
CLOSE_WAIT 9
ESTABLISHED 108
大量TIME_WAIT 链接未释放,占用临时端口,新请求无法建立
响应率
在并发1600,响应率瞬间降低至80%,大量未来响应请求出现
响应时间
响应时间在并发1200之后开始剧增