zoukankan      html  css  js  c++  java
  • 性能测试中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造成影响。
     
    6、硬件资源
    包括CPU(配置、使用率等)、内存(占用率等)、磁盘(I/O、页交换等)。
    7、压力机
    比如jmeter,单机负载能力有限,如果需要模拟的用户请求数超过其负载极限,也会间接影响TPS(这个时候就需要进行分布式压测来解决其单机负载的问题)。
    8、压测脚本
    以jmeter举个例子,之前遇到的,进行阶梯式加压测试,最大的模拟请求数超过了设置的线程数,导致线程不足。
    还有录制的脚本,需要删除一些不必要的脚本,对脚本进行优化,免得这些不必要的请求占用资源。
    提到这个原因,想表达意思是:有时候测试脚本参数配置等原因,也会影响测试结果。
    9、业务逻辑
    业务解耦度较低,较为复杂,整个事务处理线被拉长导致的问题。
    10、系统架构
    比如是否有缓存服务,缓存服务器配置,缓存命中率、缓存穿透以及缓存过期等,都会影响到测试结果。
    11、并发数
    系统的TPS是确定的,当并发数设置不恰当时,tps也较低。比如:并发数设置为1,那么tps就是1;并发数为8,TPS就是8。
    TPS如果是随着并发用户的增长而增长的,这个时候的性能是好的;
    TPS如果是随着并发用户的增长而下降的,那么就是遇到了瓶颈。
  • 相关阅读:
    eclipse下c/cpp " undefined reference to " or "launch failed binary not found"问题
    blockdev 设置文件预读大小
    宝宝语录
    CentOS修改主机名(hostname)
    subprocess报No such file or directory
    用ldap方式访问AD域的的错误解释
    英特尔的VTd技术是什么?
    This virtual machine requires the VMware keyboard support driver which is not installed
    Linux内核的文件预读详细详解
    UNP总结 Chapter 26~29 线程、IP选项、原始套接字、数据链路访问
  • 原文地址:https://www.cnblogs.com/jane4321/p/11044401.html
Copyright © 2011-2022 走看看