目录
- 一、软件性能测试
- 二、“看看你有几斤几两”(负载测试)
- 1.区间怎么判断?
- 2.设定天花板,这个最大的值怎么设定的?
- 三、“鸭梨好大哦!”(压力测试)
一、软件性能测试
软件性能测试:通过工具,找出或获得系统在不同工况下的性能指标值。
找出:在完全没有做过性能测试的时候,第一次做性能测试的时候要找出性能指标值。
因为前无古人,所以要找出性能指标来留给后来的人。
如果前面已经有人来做了,我再做一次性能测试,就要拿着性能的指标和前面的人的性能指标来进行对比。
看下相关的性能指标有没有得到提升。如果tps值有了更大的提升,说明性能有提升了。
响应时间如果有提升,这个是性能下降了。资源利用率有了提升,并不一定能说性能有下降或上升。
主要看这个资源利用率有没有达到边界值,一般是80%,如果已经超过了,就要进行性能问题的分析。
以前你在性能测试的时候,用了100个并发用户数向服务器发起请求,结果资源利用率cpu只用了20%-30%。
后面你再来做的时候,发现200个人,资源利用率只是30%-40%。这种情况你也不能说是性能下降了。
因为它的资源利用率还并不是很高,不能说性能下降了。
资源利用率只要没超过警戒线,都可以认为没太大的影响。
超过这个警戒线,我们就要进行性能的分析了。
二、“看看你有几斤几两”(负载测试):
逐步增加并发用户数,找出最大拐点区间。
由0开始逐步增加并发用户数,增加到了服务器能够承受的最大的区间的时候,这个时候才能说找出了服务器的最大的并发用户数的拐点区间在哪里了。
可以每次增加10个人或每次增加20个人。我也不知道天花板区间到底是多少,这个时候如果设一个天花板区间为500,由0每次增加20,一直到500,来看区间里哪一个会是最大并发用户数。
如果在这个里面我找出来了最大并发用户数,我就知道得到的区间是多少。
每次增加20,找出来的最大并发用户数的拐点区间会是多大的一个区间?
每次都增加20,比如由0增加到500,在320的时候是正常,在340的时候出现异常了。那我们知道的拐点区间是320-340之间,得到区间值是20个并发用户数。
但是具体是多少,我们还不知道。
1.区间怎么判断?
0-500的范围里面,每次增加20个,怎么知道320-340的中间会有问题呢?
1.看有没有报错。每次增加20个并发用户数,现在变成340个人发起请求的时候,它给我报错了。
出现报错,服务器没有这么大的能力处理340个人了。大概判断320-330之间出现了拐点了。
怎么得到的323呢?
320-340之间只有20个并发用户,每次增加10个,区间就变成320-330,每次增加一个,就能快速找到最大并发用户数是具体某个值了。
当不知道用多少并发用户数去进行这个系统的性能测试的时候,通过负载测试来做。这个负载测试可以先找到拐点区间,再找到具体的一个值。
这个区间设置多大?没有一定的范围。
一般的中小微企业只有几百万的日均访问量的话,你们的这个区间可能只有几十个并发用户。
2.tps下降。
原先增加并发用户数的时候,并发用户数增加了,请求数量会增加,服务器都能够处理的话,随着用户数的增加,请求数的增加,tps值会上升。
达到了一个值之后,发现tps值不上升,反而下降了,服务器处理不过来了,已经达到服务器最大的处理能力了。
未能处理的很多请求积累在那边,占用了服务器的资源,导致资源不够用,处理的时候需要使用资源进行计算,处理不过来了就会下降处理能力,tps就会非常明显的。
3.响应时间变长。 服务器处理某个请求,会有一个时间。这个时间,我们会定在1.5s这样一个线上。
1.5s以内,都能让它请求返回回来,就认为这样能够接受。如果超过1.5s,我已经不能接受了,服务器没有报错,tps也没有下降。
但是服务器的响应时间已经超过了1.5s,那我认为响应时间是我不能接受的。 但是服务器没有报错,服务器的tps还是正常的,没有上升也没有下降。
用户满意度指数已经超过1.5s,用户已经不满意了。这个也是我们不能接受的一个范围了,也判定为我们的一个拐点区间了。
2.设定天花板,这个最大的值怎么设定的?
如果你们服务器的处理能力是50tps:就是服务器每秒能处理50个事务。
50个tps/s*60s*60=18w
50tps一小时能处理18w。
18w*8小时=144w
50tps 8小时能处理144w个数据。
你们公司的服务器生产的环境里面日均访问量是多少?
很多项目里面生产环境的日均访问量应该在百万级。pv:日均访问量。
144w*6倍=864w
也就是50tps*6倍=300tps
你们公司的服务器生产环境的处理能力是300tps左右。
每秒钟处理300个事务。1秒钟就发300个请求,就是300个人每秒钟每人发1个请求,总共发了300个请求,这种极端的情况下来算,大概平均并发用户数就是300(这个是整个8小时,并不是单独的某一秒钟,服务器有的时候支持的人多些,有时候人少些)。
公司千万级以内的系统,你们的并发用户数一般不会很大。设置0-500并发用户数就足够用了。
产品提供给用户,给的是整个这个产品的日均访问量。
所以,得到的这个300tps肯定是所有的服务器的总的tps,是整个系统达到这么多。
现在的企业一般都是用集群的这种方式配置的。
负载的天花板大概设置到几百就够了,然后再去逐步增加设置并发用户数,找到拐点的区间。
三、“鸭梨好大哦!”(压力测试):
在一定的性能压力下,持续运行一个比较长的时间,看系统服务及各资源利用情况稳定性。
稳定性: 看它多长时间才会出现不稳定的宕机、报错这种情况。
极限性: 是崩溃的这种情况。压力测试不是测试极限状态。
关键词:较大压力 较长时间。
这里的较大压力是指负载测试找到的最大的并发用户数。
离最大并发用户数越近,压力越大,离最大并发用户数越远,压力越小。
前面所说的做的性能测试并不需要多长时间。真正执行性能测试不需要多久,运行场景一般也就是需要10分钟或半小时。
比较长的时间是以“小时”为单位的。比如让你手伸直了拿着一个苹果,只让你提个几秒钟,你是感觉很轻的,提个十分钟、半小时就感觉很难受了。
所以这个压力测试,一般要用比较长的时间来看它的稳定性。让你手伸出去拿个苹果拿10分钟,是看你的耐力行不行。
你能坚持10分钟,别人不能坚持10分钟,说明你的耐力比别人好,也就是服务器的稳定性就要好一些。
如果稳定性不行,就会出现疲劳驾驶,最后翻车了。持续运行个比较长的时间,服务器的稳定性不行的话,就可能出现宕机、报错等情况。