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

news2024/10/12 14:19:17


中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、系统架构

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

PS:性能瓶颈分析不能单从局部分析,要综合起来,多维度分析问题原因。上面列出的几点,可能有描述不当或者遗漏的,仅供参考。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/992894.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

腾讯云学生专属便宜云服务器如何购买?

随着云计算技术的快速发展,越来越多的学生开始关注和使用云服务器。腾讯云作为国内知名的云计算服务提供商,推出了一系列针对学生的优惠活动,让更多学生能够享受到云服务器的便利和优势。本文将详细介绍如何购买腾讯云学生专属的便宜云服务器…

java 集成免费虹软人脸识别 SDK,实现人脸识别认证功能

系列文章目录 引入本地 jar 包教程: https://blog.csdn.net/demo_yo/article/details/132495029 文章目录 系列文章目录前言一、SDK 下载二、SDK 集成1、jar 依赖包2、dll 链接文件 三、API 集成1、yaml 配置2、Properties 配置类3、Factory 工厂类4、Service 服务…

类加载流程

文档链接: https://www.processon.com/view/link/64fc101a00a5c32bca7fe12e 访问密码:e3x8

亚马逊测评工作室怎么赚钱?

测评工作室的盈利方式主要来自于以下几种: 佣金:市场价基本上做免评单一单30、留评50单,会根据市场价实施波动,如果一个人今天做30单的留评单就是30单*501500元汇率差:即使用实时汇率进行结算时的差额,假设…

性能测试系列专题集合

下方查看历史精选文章 重磅发布 - 自动化框架基础指南pdfv1.1大数据测试过程、策略及挑战 测试框架原理,构建成功的基石 在自动化测试工作之前,你应该知道的10条建议 在自动化测试中,重要的不是工具 从终端用户感受来体验性能指标度量如何建立…

3000字详解!什么是护网行动?什么是红蓝对抗?

一、什么是护网行动? 护网行动是以公安部牵头的,用以评估企事业单位的网络安全的活动。 具体实践中。公安部会组织攻防两方,进攻方会在一个月内对防守方发动网络攻击,检测出防守方(企事业单位)存在的安全…

04_瑞萨GUI(LVGL)移植实战教程之驱动LCD屏(SPI)

本系列教程配套出有视频教程,观看地址:https://www.bilibili.com/video/BV1gV4y1e7Sg 4. 驱动LCD屏(SPI) 本次实验我们在上一次实验的基础上驱动 LCD屏(SPI)。 上次实验我们已经能驱动触摸屏(I2C)并打印触摸点坐标,这次实验我们的目标是点…

无涯教程-JavaScript - IMSINH函数

描述 MSINH函数以x yi或x yj文本格式返回复数的双曲正弦值。复数的双曲正弦通过以下公式计算- $$\sinh(x yi) \sinh(x)\cos(y)-\cosh(x)\sin(y)i $$ 语法 IMSINH (inumber)争论 Argument描述Required/OptionalInumberA complex number for which you want the hyperbol…

渗透测试流程是什么?7个步骤给你讲清楚!

在学习渗透测试之初,有必要先系统了解一下它的流程,静下心来阅读一下,树立一个全局观,一步一步去建设并完善自己的专业领域,最终实现从懵逼到牛逼的华丽转变。渗透测试是通过模拟恶意黑客的攻击方法,同时也…

python实现读取并显示图片的两种方法

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片。 本人偏爱 matpoltlib,因为它的语法更像 matlab。 👇 👇 👇 更多精彩机密、教程&…

智能语音血压计:NV040DS芯片呵护您的健康

随着科技的发展。血压计已告别传统的水银血压计,迈向电子血压计时代。电子血压计往往体积小。携带方便。智能血压计能自动检测人体的血压值,并给予语音提示与科学指导、帮助人们更好地了解自己的身体状况。 一、产品介绍 深耕语音芯片的九芯电子科技带…

SpringBoot+MP操作DM8

1. 达梦数据库介绍 达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的国产高性能数据库管理系统,简称DM。当前最新版本是8.0版本,简称DM8。(同时也是一款RDBMS,关系型数据库管理系统,和oracle比较像&#xff…

CLIP | 打破文本图像次元壁

1 贡献 CLIP是文字图片的多模态工作 CLIP的迁移效果非常好。不同风格数据集的ZeroShot推理能力超强 在分类 ,物体检测和分割,视频检索都很多视觉下游任务都可以用CLIP取得有监督学习的效果 采用利用自然语音信号的监督信号来进行训练 提出了高质量的…

抖店开通后,新手必须要知道的几个做店技巧,建议认真看完

我是王路飞。 抖店的运营,无非就是围绕【产品】【流量】展开的。 你要是能把这两个点给搞明白,新店快速出单、真是爆单就不再是问题了。 今天就给你们说一下,抖店开通后,作为一个新手商家,你必须要知道的几个做店技…

Java中如何进行加锁??

笔者在上篇文章介绍了线程安全的问题,接下来本篇文章就是来讲解如何避免线程安全问题~~ 前言:创建两个线程,每个线程都实现对同一个变量count各自自增5W次,我们来看一下代码: class Counter{private int count0;publi…

玩转宝塔,持续更新

用了下宝塔是真的比较爽,这里介绍下安装 1.linux安装宝塔 linux服务器直接安装输入就好 yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec2.部署项目 2.1安装套件 这里直…

datax工具介绍及简单使用

介绍 Datax是一个异构数据源离线同步工具,致力于实现包括关系数据库、HDFS、Hive、ODPS、Hbase等各种异构数据源之间稳定高效的数据同步功能 设计理念 为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为…

Java转网络安全渗透测试,挖漏洞真香啊

最近,一个做运维的朋友在学渗透测试。他说,他公司请别人做渗透测试的费用是 2w/人天,一共2周。2周 10w 的收入,好香~ 于是,我也对渗透测试产生了兴趣。开始了探索之路~ 什么是渗透测试 渗透测试这名字听起来有一种…

Java实现自动玩王铲铲的致富之路小程序游戏

文章目录 前言1.调用adb命令截屏并读取到电脑2.打开游戏,提前截几个图,准备好相应的按钮位置颜色3.根据图片路径和x,y坐标,读取图片相应位置的颜色值4.根据颜色值判断如何进行触摸操作5.程序效果分析5.存在的问题6.改进思路7.改进版本&#x…

vue3中通过ref获取子组件实例,取值为undefined

也就是Vue3如何通过 ref 获取子组件实例(子组件中的DOM结构、数据、及方法),今天写index.vue(父组件)时想获取子组件的数据和方法,通过给子组件绑定ref,打印子组件的数据为undefined;百度搜索常用方法为: …