• jmeter-进阶02


    1、TPS:

    Transactions Per Second,意思是每秒事务数。一个事务是指客户端向服务器发送请求然后服务器做出反应的过程,具体的事务定义,可以是一个接口、多个接口、一个业务流程等等。以单接口定义为事务举例,每个事务包括了如下3个过程:

    (1)向服务器发请求
    (2)服务器自己的内部处理(包含应用服务器、数据库服务器等)
    (3)服务器返回结果给客户端

    如果每秒能够完成 N 次以上3个过程,TPS 就是 N。

    TPS 是软件测试结果的测量单位。我们在进行服务性能压测时,接口层面最常关注的是最大 TPS 以及接口响应时间,个人理解 TPS 可以指一组逻辑相关的请求,而服务整体处理能力取决于处理能力最低模块的TPS值。

    2、QPS:

    Queries Per Second,意思是每秒查询率。指一台服务器每秒能够响应的查询次数,用于衡量特定的查询服务器在规定时间内所处理流量多少,主要针对专门用于查询的服务器的性能指标,比如dns,它不包含复杂的业务逻辑处理,比如数据库中的每秒执行查询sql的次数。QPS 只是一个简单查询的统计显然,不能描述增删改等操作,显然它不够全面,所以不建议用 QPS 来描述系统整体的性能;

    QPS 基本类似于 TPS,但是不同的是,对于一个事务访问,会形成一个 “ T ”;但一次 " T " 中,可能产生多次对服务器的请求,服务器对这些请求,就可计入 QPS 之中。

    3、区别:

    (1)如果是对一个查询接口压测,且这个接口内部不会再去请求其它接口,那么 TPS = QPS,否则,TPS ≠ QPS

    (2)如果是容量场景,假设 N 个接口都是查询接口,且这个接口内部不会再去请求其它接口,QPS = N * 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、压测脚本
    以jemter举个例子,之前遇到的,进行阶梯式加压测试,最大的模拟请求数超过了设置的线程数,导致线程不足。
    还有录制的脚本,需要删除一些不必要的脚本,对脚本进行优化,免得这些不必要的请求占用资源。
    提到这个原因,想表达意思是:有时候测试脚本参数配置等原因,也会影响测试结果。
    9、业务逻辑
    业务解耦度较低,较为复杂,整个事务处理线被拉长导致的问题。
    10、系统架构
    比如是否有缓存服务,缓存服务器配置,缓存命中率、缓存穿透以及缓存过期等,都会影响到测试结果。
    11、并发数
    系统的TPS是确定的,当并发数设置不恰当时,tps也较低。比如:并发数设置为1,那么tps就是1;并发数为8,TPS就是8。
    TPS如果是随着并发用户的增长而增长的,这个时候的性能是好的;
    TPS如果是随着并发用户的增长而下降的,那么就是遇到了瓶颈。
     

    ​​​​​​​

     

     

     

    系统使用高峰时段分析

    系统高峰期业务应用分析

    1、

    并发用户数量设计

    极限法:可以通过分析日志,也可以使用系统已经注册的用户数量做为系统最大用户数,然后按照经验公式来估算最大并发用户数。

    用户趋势分析:对软件生存周期内的用户未来走势进行分析,预测系统可能达到的最大用户数,从而估计系统的最大并发用户数,这种方法多用于系统用户数目逐渐增加的情况。

    经验评估法:实际使用的最大用户数的30%

     2、

    事务平均响应时间

    疲劳强度测试:以一定的负载压力来长时间运行系统的测试。

    网络对于性能结果的影响网上的例子

    虽然我们测试服务器的网卡是100/1000M网卡,然而我们却是将服务器部署于百兆局域网内,而100M带宽的实际传输速度刚好是介于12M左右,由于我们终于发现瓶颈是在于网络带宽,而非是服务器本身的性能上。于是二话不说,我们立刻将所有的测试服务器以及客户机都连接在同一千兆网内,尽可能降低网络带宽的限制

  • 相关阅读:
    计及电池储能寿命损耗的微电网经济调度(matlab代码)
    城市天气预报查询易语言代码
    USB-PD快充和QC快充的区别
    05_openstack之Neutron网络管理
    【多媒体技术与实践】图像信息获取和处理——编程题汇总
    Java正则表达式基础用法
    刷题记录(NC16671 [NOIP2006]金明的预算方案,NC14699 队伍配置,NC235951 草药大师)
    loadrunner-Controller负载测试-各模块功能记录01测试场景设计
    My Forty-sixth Page - 将有序数组转换为二叉搜索树 - By Nicolas
    企业在选择文件加密软件应注意哪些问题?
  • 原文地址:https://blog.csdn.net/dangai0201/article/details/127779662