性能测试中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/jane4321/p/11044401.html

时间: 2024-10-12 23:50:26

性能测试中TPS上不去的几种原因的相关文章

性能测试中TPS和并发用户数

并发用户数:是指现实系统中操作业务的用户,在性能测试工具中,一般称为虚拟用户数(Virutal User). 并发用户数和注册用户数.在线用户数的概念不同, 1.并发用户数一定会对服务器产生压力的, 2.而在线用户数只是 "挂" 在系统上,对服务器不产生压力, 3.注册用户数一般指的是数据库中存在的用户数. TPS:Transaction Per Second, 每秒事务数, 是衡量系统性能的一个非常重要的指标. TPS就是每秒事务数,但是事务是基于虚拟用户数的,假如1个虚拟用户在1秒

Jmeter性能测试中Tps图与响应时间图

[email protected] - Response Times Over Time显示图: [email protected] - Transactions per Second 原文地址:http://blog.51cto.com/357712148/2060214

Android应用开发中webview上传文件的几种思路

1. 常规方法,重写WebChromeClient 的 openFileChooser 方法 private class MyWebChromeClient extends WebChromeClient { // For Android 3.0+ public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType) { if (mUploadMessage != null) return; mUploadMe

性能测试中的TPS与HPS

性能测试中的TPS与HPS TPS(Transaction per second) 是估算应用系统性能的重要依据.其意义是应用系统每秒钟处理完成的交易数量.一般的,评价系统性能均以每秒钟完成的技术交易的数量来衡量. 系统整体处理能力取决于处理能力最低模块的TPS 值.依据经验,应用系统的处理能力一般要求在10-100左右.不同应用系统的TPS有着十分大的差别,一般需要通过性能测试进行准确估算.HPS:Hits per Second 每秒点击次数是指在一秒钟的时间内用户对Web页面的链接.提交按钮

性能测试入门(一):性能测试中的各项指标告诉我们什么

性能测试 性能测试是通过自动化的测试工具模拟多种正常.峰值以及异常负载条件来对系统的各项性能指标进行测试. 按照不同的目标,可以分为负载测试.压力测试.容量测试.稳定性测试.平时工作中如果不是专业的测试机构,开发人员或者运维人员做的基本上都属于压测. 压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试. 性能指标 QPS 目前在业界告诉别人我系统的性能指标,比较容易说的就是QPS.QPS有时也说TPS,指的是每秒钟request/事务.通常有人告诉你他的接

服务器压力上不去原因分析

百兆的带宽在理论上1秒钟可以传输12.5MB的数据,但是考虑到干扰因素每秒传输只要超过10MB就比较正常啦.千兆带宽每秒传输是100M. http://www.cnblogs.com/candle806/archive/2011/04/02/2003828.html 通过分析,处于峰值只有网络带宽,为90%以上,而对比此处的吞吐率值恰为95MB/s左右,1Gbps的网络带宽传输速率为128MB/s,从而表明由于吞吐量过大,占用了大量的带宽资源,导致后续的虚拟用户无法得到服务器的资源,而致使请求被

关于性能测试中“并发”的解释

当我们在谈论"并发"时 动辄要求系统支持成百上千并发的性能需求太多了,也许系统在实际中确实存在这样的需求,但能够较全面理解此需求的情况并不多. 对于并发,我过去接触了几种理解,在接触的第一种理解中,"并发"是由loadrunner中获取,即脚本中所有或部分vuser执行至集合点函数时进行停留,等待触发条件发生以后,同时执行集合点函数后的请求操作的这一个过程,为"并发"(这一个请求操作一般存在多个http请求),可惜这种"并发"

工作中图片上传遇到的一个问题

同事需要调用我开发的一个图片上传接口,我把接口文档以及调用示例全部给了他,结果他调不成功,向我请教. 一步步调试,最终结果定位到他图片上传到本地时就失败了.打印出$_FILES数组,error提示给出的是7 查看手册,是写入磁盘失败.首先想法是上传临时文件夹失败. 去php.ini中查看临时文件夹,发现没有设置,其实默认就是/tmp目录了,修改一下临时文件夹,设置成/tmp,重启php-fpm,打开phpinfo,看到临时文件夹为/tmp 再上传,还是报同样的错误.为啥写入失败呢?难道满了? 果

数据建模在性能测试中的理解

百度搜索:小强测试品牌 如果觉得本文不错,请多多转发一下哈 引子 概念是一个让人又爱又恨的东西,有些东西需要概念来解释,但有些东西又被概念所迷惑.很多所谓高大上的概念其实你剥开来看并没有那么高级. 因为在小强测试品牌培训班中看到了有的学员聊了这个话题,所以今天就顺便写写关于数据建模这个概念在性能测试中到底是个啥? 我所理解的数据建模 按照我个人的理解在性能测试中的数据建模可以分成两个方面来理解,一个是基础数据有的人也叫铺底数据(概念也是越玩越花),另一个是业务场景(其实就是场景用例). 1 基础