性能测试中TPS上不去的几种原因分析
网络带宽
在压力测试中,有时要模拟大量的用户请求,如果单位时间内传递的分组太大,超过了带宽的传输容量,将会产生网络资源竞争,间接导致服务端收到的请求数量达不到服务端处理能力的上限。
连接池
可用的连接数太少,造成请求等待。
垃圾回收机制
对于像 Tomcat这样的普通应用服务器,因为 java的堆栈内存是动态分配的,而具体的回收机制是基于算法的,如果在新生代的 Eden和 Survivor区频繁进行 Minor GC,而老年代的 full GC也会经常回收,那么 TPS对 TPS也是有一定影响的,因为垃圾回收其本身就会占用一定的资源。
数据库配置
在高并发的情况下,如果请求数据需要写入数据库,并且需要写入多个表时,如果数据库的连接数不够多,或者 SQL没有索引没有绑定变量写入数据,或者没有主从分离,读写分离等等,都会导致处理过慢的数据库事务,影响到 TPS。
通信连接机制
串行、并行、长连接、管道连接等,不同的连接情况,也间接的会对TPS造成影响。
硬件资源
包括CPU(配置、使用率等)、内存(占用率等)、磁盘(I/O、页交换等)。
压力机
例如 PerformanceRunner性能测试工具,单机负载能力是有限的,如果需要模拟的用户请求数量超过了它的负载限制,则间接影响 TPS。
压测脚本
举一个 PerformanceRunner性能测试工具的例子,在以前工作的同事遇到过,进行阶梯压力测试,较大的模拟请求数超过了设置的线程数,导致线程不足。
业务逻辑
由于业务不连贯、更复杂、整个事务理线被拉长而引起的问题。
系统架构
例如有没有缓存服务、缓存服务器配置、缓存命中率、缓存穿透率、缓存过期等等,都会影响测试结果。
以上是关于软件测试的知识,由多测师亲自撰写,全网独家提供! https://www.duoceshi.com/
联系人:王老师
手机:15873483787
电话:0755-21072941
邮箱:hr@duoceshi.com
地址: 广东省深圳市龙华区龙华街道龙园社区人民路宾馆花园18栋信盈广场A栋4层