首页 > 其他分享 >性能测试TPS影响因素

性能测试TPS影响因素

时间:2022-12-12 14:22:17浏览次数:56  
标签:缓存 性能 并发 TPS 测试 连接池

先说理解:

  • 系统的性能由TPS决定,跟并发用户数没有多大关系。在同样的TPS下,可以由不同的用户数去压(通过加思考时间设置)。
  • 系统的最大TPS是一定的(在一个范围内),但并发用户数不一定,可以调整。
  • 建议性能测试的时候,不要设置过长的思考时间,以最坏的情况下对服务器施压。
  • 一般情况下,大型系统(业务量大、机器多)做压力测试,5000个用户并发就够了,中小型系统做压力测试,1000个用户并发就足够了。

1.策略

  做性能测试需要一套标准化流程及测试策略,并发用户数只是指标考虑的一个,在做负载测试的时候,一般都是按照梯度施压的方式去加用户数,而不是在没 有预估的情况下,一次加几万个用户,,交易失败率非常高,响应时间非常长,已经超过了使用者忍受范围内,这样做没有多大的意义,这就好比“有多少钱可以干多少事”一样,需要选择相关的策略。

性能测试中TPS上不去的几种原因浅析

 

昨晚在某个测试群看到有人问了一个问题:压力测试中TPS一直上不去,是什么原因?稍微整理了下思路,列举性的简略回答了他的问题。

这篇博客,就具体说说在实际压力测试中,为什么有时候TPS上不去的原因。如有遗漏或不对的,请评论区指出,不胜感激。。。

 

先来解释下什么叫TPS:

TPS(Transaction Per Second):每秒事务数,指服务器在单位时间内(秒)可以处理的事务数量,一般以request/second为单位。

关于性能测试的其他一些常见术语,可参考之前的博客:性能测试:常见术语浅析

 

下面就说说压测中为什么TPS上不去的原因:

1、网络带宽

在压力测试中,有时候要模拟大量的用户请求,如果单位时间内传递的数据包过大,超过了带宽的传输能力,那么就会造成网络资源竞争,间接导致服务端接收到的请求数达不到服务端的处理能力上限。

2、连接池

可用的连接数太少,造成请求等待。连接池一般分为服务器连接池(比如Tomcat)和数据库连接池(或者理解为最大允许连接数也行)。

(关于连接池的具体内容,可参考之前的博客:性能测试:连接池和线程

3、垃圾回收机制

从常见的应用服务器来说,比如Tomcat,因为java的的堆栈内存是动态分配,具体的回收机制是基于算法,如果新生代的Eden和Survivor区频繁的进行Minor GC,老年代的full GC也回收较频繁,那么对TPS

也是有一定影响的,因为垃圾回收其本身就会占用一定的资源。

4、数据库配置

高并发情况下,如果请求数据需要写入数据库,且需要写入多个表的时候,如果数据库的最大连接数不够,或者写入数据的SQL没有索引没有绑定变量,抑或没有主从分离、读写分离等,

就会导致数据库事务处理过慢,影响到TPS。

5、通信连接机制

串行、并行、长连接、管道连接等,不同的连接情况,也间接的会对TPS造成影响。

(关于协议的连接,可参考之前的博客:HTTP协议进阶:连接管理

6、硬件资源

包括CPU(配置、使用率等)、内存(占用率等)、磁盘(I/O、页交换等)。

7、压力机

比如jmeter,单机负载能力有限,如果需要模拟的用户请求数超过其负载极限,也会间接影响TPS(这个时候就需要进行分布式压测来解决其单机负载的问题)。

8、压测脚本

还是以jemter举个例子,之前工作中同事遇到的,进行阶梯式加压测试,最大的模拟请求数超过了设置的线程数,导致线程不足。

提到这个原因,想表达意思是:有时候测试脚本参数配置等原因,也会影响测试结果。

9、业务逻辑

业务解耦度较低,较为复杂,整个事务处理线被拉长导致的问题。

10、系统架构

比如是否有缓存服务,缓存服务器配置,缓存命中率、缓存穿透以及缓存过期等,都会影响到测试结果。

转https://www.cnblogs.com/imyalost/p/8309468.html

标签:缓存,性能,并发,TPS,测试,连接池
From: https://www.cnblogs.com/testcodell/p/16975932.html

相关文章

  • 亚马逊化妆品类斑贴HRIPT测试报告
    亚马逊要求化学品/美容类产品都需要办理此类测试化妆品在使用时与人体表面直接接触,如果产品存在问题,可能会引起包括皮肤不良反应。斑贴试验作为常用的化妆品安全性测试,可以......
  • 加拿大亚马逊CCPSA测试报告
    法规名称:CanadaConsumerProductSafetyAct,加拿大消费品安全法 法规简称:CCPSA法规编号:S.C.2010,c..发布时间:2010-12-15生效时间:2011-06-20法规简介加拿大消费品安全法(CCP......
  • 软件测试人员如何提高测试效率
    在说到测试效率的时候,我们测试人员首先要明确效率的真正意义,效率不等同于速度,效率是由速度加质量加进度组成,提高效率不仅仅要提高速度,还要保证测试的质量和项目的进度......
  • 软件测试工程师需要具备的能力有哪些?
    互联网行业的快速发展让产品迭代速度越来越快,为了保证产品质量,测试工程师在研发队伍中的比重也随之增加。软件测试工程师贯穿于产品发展的各个阶段,从产品立项到上线都......
  • Vulnhub之TBBT FunWithFlags靶机详细测试过程
    TBBTFunWithFlags作者:jason_huawen靶机基本信息名称:TBBT:FunWithFlags地址:https://www.vulnhub.com/entry/tbbt-funwithflags,437/其他说明:靶机配置静态IP地址,因......
  • 反射技巧让你的性能提升N倍
    Hi大家好,我是DHL。公众号:ByteCode,专注分享有趣硬核原创内容,Kotlin、Jetpack、性能优化、系统源码、算法及数据结构、动画、大厂面经在之前的文章和视频中我们拆分了不同......
  • SSDB:高性能数据库服务器
    SSDB是一个开源的高性能数据库服务器,使用GoogleLevelDB作为存储引擎,支持T级别的数据,同时支持类似Redis中的zset和hash等数据结构,在同时需求高性......
  • 快速上手 Pytest + Requests + Allure2 测试框架实战技能
    随着分层测试策略和自动化测试的普及,测试框架和接口测试成为测试工程师需重点掌握的底层核心技能。在Python自动化测试领域,Pytest由于入门简单,扩展丰富,功能强大,易于维护......
  • Java性能调优System的gc垃圾回收方法
    java性能调优System的gc垃圾回收方法java性能调优System的gc垃圾回收方法示例解一、什么是System.gc()?​​System.gc()​​是用Java,C#和许多其他流行的高级编程语言提供的API......
  • 电动滑板车出欧盟需要做什么测试报告呢?
    ​电动滑板车出口欧盟EN17128标准电动滑板车是继传统滑板之后的又一新型滑板运动产品。电动滑板车节约能源,充电快速且续航能力强。整车造型美观、可以折叠,操作方便,驾驶更安......