性能测试wrk
有关性能测试这块,涉及传参的接口,推荐用jmeter调用多台子设备进行测试
由于jmeter对电脑本身的要求很高,很容易在执行时本机卡死影响最终的结果
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。故在不涉及传参时,单接口的压力测试 推荐使用wrk
wrk是一款基于linux下的单命令执行的测试工具
安装wrk:
先安装git
cd /usr/local/src
sudo yum install git -y
下载wrk:
git clone https://github.com/wg/wrk.git
cd wrk
make
1. 安装后,ll查看wrk目录,cd wrk, 进入目录
2.输入执行语句: ./wrk –t10 –c100 –d10s http://www.baidu.com
说明:T线程数,c连接数,d 执行时间,线程数就是多少个人,连接数就是多少个石头
举例:10个人 对着名字叫百度的人 去丢100个石头(这个石头会无限再生),
百度的怒气值上限是100,被丢石头怒气值会上升,看看10秒内一共能丢过去多少块石头,每秒能丢多少块石头,怒气值会达到多少
名词说明:
一般的,t和c的比例是 1:10(1线程:10连接数,线程≤连接数)
在满足CPU(怒气值),RT,非200,这三个条件的情况,可以得到最终的QPS 或 吞吐量
结果中:
1.红框是 RT:0.031秒(平均响应时间) #一般接口<0.3.s ,页面<3s
2.蓝框是QPS,每秒请求的事物数
3.绿框是吞吐量,吞吐量是指 每秒处理的事物数
4.Socket error 主要看timeout(超时)这项,若超时很多,则在执行语句中添加:--timeout=15s (超时时间可以自己改)
语句为: ./wrk –t10 –c100 –d10s –timeout=15s http://www.baidu.com
若怎么改都超时,则截图给开发和开发沟通
5.非200 ,指的是非200,300的链接,先看一张图:
该图仅供参考,一般报错不会那么多,如果报错,则降低线程数,连接数同时等比降低,若怎么调都还是报错,
将错误结果反馈给开发,若开发可以接受,则认为满足非200条件
6.服务器CPU(怒气值)
一般的,默认服务器的CPU值达80%,即算瓶颈期,随着你持续的请求,服务器的CPU会实时变化,只要趋近于在75~90 %之间,
即算满足压力需求(具体压力值已测试需求为主)
7.命令总结:一般的为了防止超时,以及可以更明显的观察CPU的走势,一般的我们都添加 –timeout=15s ,以及将时间调整至30s或60s
例如:./wrk –t200 –c2000 –d60s –timeout=15s http://www.baidu.com
一般的起始线程数控制在200~500,CPU不够,则增加线程数,若报错查看说明5
单台多台堡垒机
之前描述的全是单台堡垒机的情况,当你出现非200时,降低线程数后,消除非200,但不能满足CPU的条件时,
我们就需要增加多台堡垒机(多台的意义就是保持低报错下,增加CPU,可以通过命令行调用或直接同时回车执行),
怎么看多台堡垒机的指标?看下图:
堡垒机1:
堡垒机2:
CPU:满足条件不变,看后台纵轴
非200:错误数相加
RT:算平均值 ,例如:(14+13)/2 =13.5ms=0.013s
吞吐量:累加
QPS:累加,如上图 图1是7171 ,图2是7721,则QPS =图1+图2 =14892
测试流程:
首先问清楚,你要测什么,框架是什么,需要传参数吗?(传参用Jmeter方便)
测试需求是什么
1.先确认给的地址是否能通
方法1:地址可以打开,把地址复制,在windows的堡垒机中直接IE查看
方法2:在wrk直接 –t1,-c1 -1ds 执行一下,看看是否能执行,是否非200
2.开搞,将CPU压满(增加线程数,或增加堡垒机个数),满足所有参数条件下,给出QPS结果
3.反复执行,得到最完美的 t,c比例,对比执行结果
4.根据结果分析服务器的瓶颈值
