天平秤,称东西的时候,需要逐步加砝码,最终达到砝码和物品重量的平衡点,因为它不可能一下子就达到平衡点【好比不可能一下子找到系统能承受的最大负载量】
称东西:业务场景
加砝码:逐步加压
达到平衡点:找到最大负载量
实际场景
有一个业务,增加到40个人的时候,服务器还能正常使用,没有异常
当你增加到50个人的时候,服务器已经开始有异常了,那么就能确定40-50之间某个值就是系统所能承受的最大负载量【出现性能拐点,找到了服务器性能瓶颈的范围值】
最后减小加压梯度(比如:从40个人开始每次增加1个人、2个人),确认最大负载量【确认性能拐点】
服务器又有哪些可能会出现的异常呢
响应时间超长:正常服务器处理请求时间是 1s,但现在变成3s - 5s
服务报错:无法同时正常响应多个请求
服务器宕机:系统完全用不了
什么是压力测试? 概念
在较大的性能压力下,持续运行一个比较长的时间,看看系统服务是否正常及系统资源的利用率情况
通俗理解:鸭梨山大!
关键字:较大压力 + 较长时间
注意:不是满负荷压力哦
场景类比
问:大家什么时候会觉得工作压力大?
答:996、007;因为你不会觉得955压力山大吧
结论:所以在我们日常工作中,长时间工作强度高,才会觉得压力大;如果你一周就加班一天也说压力大...(那就别干这一行了)
压力测试用来干嘛的
测试系统的稳定性
类比
工作压力大,你还能坚持下去(那稳定性肯定好吧),那如果你很快就离职了(那稳定性肯定差,都宕机罢工了)
什么时候会做压力测试
生产环境下,系统隔三差五的出现不稳定的情况
这个时候,就需要通过压力测试去测试系统的稳定性情况
啥情况算不稳定?稳定性差?
隔三差五的出现下面的情况
服务异常:响应错误、响应时间超时等
服务器出现异常:宕机
怎么分析是服务异常还是服务器异常
如果所有请求都是一片红,应用程序发送的所有请求都报红,就是服务器出现了异常
如果有些请求偶尔成功响应,偶尔又失败,则是服务异常,出现不稳定的情况
如何取压力值
在负载测试中,我们确认了系统所能承受的最大负载量
压力值 < 最大负载量,一般取80%左右
灵魂拷问
负载测试一般时间比较短,压力测试时间比较长,持续运行时间短就能正常使用,但持续运行时间长就可能崩掉了,这是什么原因呢?
场景类比
栗子一:电脑保持开机状态很长时间,会逐渐变卡,因为内存的东西会越来越多,得不到有效的回收, 就会越来越卡
栗子二:当你经常工作压力很大,且你的心理所能承受的压力逐渐达到最大值时,你就可能会选择离职
总结
压力测试长时间运行,可能会逐渐增加系统的内存占用空间,若得不到有效的内存回收,当达到内存最大值时,系统就会崩掉
压力测试持续运行时间要多久?
标准性能测试里面,一般是7*24小时,或者是它的倍数
但是实际工作中,并不会这么久,否则成本太高
所以会以小时为单位,比如:4个小时、8个小时...晚上下班之后做,第二天早上上班看结果
先负载测试还是压力测试?
先负载测试
负载测试可以找到服务器性能瓶颈的范围值,若生产环境中系统稳定性较差,再做压力测试
所以压力测试是可做可不做的
什么是可靠性测试? 概念
在给定的一定的业务压力下,持续运行一段时间,查看系统是否稳定
关键字:是否稳定,一定业务压力
注意:不是较大压力哦
业务场景栗子
电商秒杀场景,几十个商品几十万个人同时秒杀抢购
如何理解可靠性测试
编写性能脚本:假设一秒内有一万个人同时发起请求
有压力吗?有,一万个人同时发起请求
但是持续时间短,不像压力测试一样需要持续一段时间