本次总结总共分为以下部分:1.如何衡量一个系统是否要做压测 2.压测的准备过程 3.压测工具选择 4.压测数据以及报告结果相关
1.如何衡量一个系统是否要做压测
首先需要衡量一个系统是否需要压测,从以下角度考虑:
从两个角度进行分析:
a.业务角度
明确系统是对内使用还是对外使用,使用人数是多少,如果使用人数较少,则并发性的性能测试是没有必要的
特例,在功能测试时发现明显的性能问题,则需要进行性能测试排查问题
b.系统角度
1)系统架构
如果一个系统的框架是老的系统框架,那么这个系统框架一定是经过验证的,而如果是新的系统框架,则需要考虑是否做性能测试
2)数据库要求
性能测试很多时候都是大数据量去访问/修改数据库,而瓶颈在于数据库连接池的数量,而不是数据库本身的负载或者吞吐量,此时可以结合DBA的建议来判断是否需要进行性能测试
3)系统特殊要求
从实时性角度考虑,某些系统对响应时间要求比较高,比如证券系统,系统的快慢直接影响客户的收益,此时很有必要去做并发量的测试
从大数据量角度考虑,存在某些系统需要进行大量的上传或者下载的操作,虽然使用这种操作的情况不多,但是也有必要进行性能测试,确定系统最大的容量,超过这个容量时,需要进行相关的控制
2.压测的准备过程
在明确需要进行性能测试后,有以下事项需要确认:压测目标/目的,以及性能准入准备工作
a.明确压测目标,压测目的
明确是为什么进行压测,仅仅是为了确定系统的性能还是为了对比加了不同的脚本后,性能的变化等目的需要明确。就本次而言,是为了明确,添加新的组件对服务器的影响
压测目标值确定:在已知线上平时流量高峰QPS时,压测的目标一般为平时流量高峰的3~5倍
压测过程:
压测过程中,逐渐加压,通常情况下,一台发压机能承受的线程数为1000需要填写,当cpu使用率为65%左右时,为系统拐点区,超过这个点,系统处理能力将变弱。
得到系统的处理能力拐点时,使用同样的数据,再加上组件进行压测,查看各项指标
3.压测工具选择
压测平台:本次压测主要为压测前端接口部分,而公司内部的压测平台主要是压测后端接口,以及jmeter也主要是压测后端接口,
因此使用wrk进行压测,需要提前下载安装,详细可参考:https://www.cnblogs.com/quanxiaoha/p/10661650.html
压测时,主要使用命令:wrk -t -c -d 请求 //压测单个接口的情况下
多个接口一起并发时,可通过写shell脚本后,执行shell脚本的方式进行压测
shell脚本写法:
建一个.sh后缀的文件,把wrk命令放在文件里,每行命令后边写上空格和&
在压测机器下,我们可能没有权限去直接在bin目录下建shell脚本,因此需要切换到home目录下创建shell脚本下,shell脚本路径:measure01 ~目录下,test.sh文件
接下来,执行这个shell脚本就可以实现多个接口并发压测了,执行命令:./sh test.sh
4.压测数据以及报告结果相关
指标查看部分:
1.wrk工具进行压测后,吞吐量的查看
2.监控看图进行查看
性能测试查看指标
CPU部分:cpu.util 63%左右
QPS:吞吐量比较(什么样的情况吞吐量是合理的,如果对比是否加了lua脚本的情况下,对比同样的请求下,吞吐量的变化)
内存占用
磁盘占用



