性能场景之基准场景

性能测试场景有人也称为性能用例设计,不管如何称呼,在性能领域,性能场景设计是非常重要的,性能场景设计的是否准确代表性能测试结果是否有价值,例如,一个混合场景中有3个接口,线上用户对接口的占比分别为15%,58%,27%。而我们在设计场景的时候3个接口占比为30%,30%,40%,那么试想一下,这能模拟线上真实用户的使用轨迹嘛?那么性能场景应该如何设计呢?下面我阐述一下个人观点。

在服务端性能测试中,性能场景可以分为基准场景,混合场景,稳定性场景,异常场景,接下来说一下这几个场景。

基准场景:基准场景就是对单接口或者单业务的测试,在进入测试前,我们要测试出这个接口的压力线程数,增加压力和降低压力的策略,那么,接口的压力线程数如何测试出来呢?

首先,我们确定单线程的TPS,我们设置1个或多个线程循环对这个接口跑一段时间,看一下TPS能达到多少,接着在增加线程继续测试,根据测试结果评估出单个线程支持的TPS是多少。

看下面这个例子:设置10个线程执行60s,接着看一下结果

 

 

执行结果如下:

 

 

 

继续验证一下我上面的观点,设置2个线程看一下TPS情况

 

 

 

测试结果如下:

 

 

 

经过两次测试可以看出10个线程执行60秒 178TPS,2个线程执行60秒32.9TPS,可以预估出整个接口单线程的TPS为17左右

其次,预估服务器最大支撑的TPS数量并配置加压策略,根据服务器的配置,例如 8颗CPU 16G内存 能支持600TPS,那我们就使用600TPS/17TPS大约需要35线程 ,所以线程设置不低于35就可以,比如 可以设置40或50

我们来设置加压和减压策略,加压策略主要是为了能更清晰的观察TPS和RT的曲线,以便能更好的判断出瓶颈点,下面是设置的一个例子

 

 

 

最后,我们确定最终基准场景的压力参数。

注意:其他接口我们也用同样的方法执行

我们不管是谁在做一件事情总是带有目标的,性能测试也不例外,那么基准场景的目标是什么呢?

基准场景的第一个目标就是为混合场景做准备,它的TPS能支撑混合场景的需要,那么我们就要测试出它的最大TPS

基准场景的第二个目标就是在压测的过程中把资源耗尽(CPU,内存,IO,网络)耗尽一个即可

如果TPS不足以支撑混合场景的需要,那么我们就必须要去优化它

如果TPS可以支撑混合场景的需要,那么我们就要看第二个目标,资源是否耗尽

        如果资源没有耗尽,我们要去优化它到最大TPS,避免在混合场景中出现瓶颈



作者:覆手倾天下
链接:https://www.jianshu.com/p/0336e0923cc3
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted @ 2023-04-04 15:19  AlamZ  阅读(35)  评论(0编辑  收藏  举报