Jmeter 性能测试 —— 评估一个系统TPS与并发数!

问题:性能压测,如何评估一个系统的TPS和并发数?

1、对于新系统

由业务部门或开发人员预估交易量和TPS指标

可以参考公式:并发用户 = 在线用户数 * 10%。

当一个系统还没有上线时,我们可以预判的是这个系统准备要给多少人使用

如日常在线用户数量要支撑1000,那么并发用户参考值为:1000* 10%=100。

如果规定该业务的平均响应时间不高于500毫秒,那么通过TPS=并发用户数/业务平均时间

就可以得到TPS=100/0.5s=200笔/秒。

为了系统健壮性考虑,我们还可以在预估计算得到的TPS基础上扩个1.5倍得到200笔/秒* 1.5=300笔/秒。

即可得到该系统的TPS为300笔/秒,并发数为150。

2、对于已上线系统

TPS有两个公式:

公式一:TPS = 总请求 / 总时间,实际会考虑二八原则公式二:TPS = 并发数 / 业务平均时间

TPS一般有以下几种衡量系统性能指标的方式:

①一般业务系统,选取一天业务量,根据二八原则估算TPS指标

二八原则即:80%的业务在20%的时间里完成,TPS=(业务量 * 80%)/(时间(单位s) * 20%)

②秒杀类系统模型,选取高峰时间段业务量,估算TPS指标。

③波动类、交易集中类系统模型,选取特殊交易时间段业务量,预估TPS指标。

另外需要注意:TPS指标需要考虑业务增长量相关因素

如某银行系统某业务订单数据如下:

日常8小时,100万笔交易量,高峰期间交易量8万笔,高峰持续时间9分钟,预估系统3年内每年业务增长率为20%

那么:

该业务系统日常期间TPS为:TPS=(日常交易量 * 80%)/(时间 * 20%)=(100万 * 80%)/(8小时* 60 * 60 * 20%)≈139笔/秒
该业务系统高峰期间TPS为:TPS=高峰期间交易量/高峰持续时间(单位s)=8万/9分钟* 60≈148笔/秒
该业务系统包含每年业务增长率TPS为:首先三年后业务量=日常交易量* (1+20%)* (1+20%)* (1+20%)=100万* 1.2* 1.2* 1.2=172.8万
其次被测业务交易占总业务交易比例为:40%,那么被测试业务交易量为:总业务交易量* 40%=172.8万* 40%=69.12万
最后被测业务包含每年业务增长率TPS为:(被测试业务交易量* 80%)/(时间(单位s) * 20%)=(69.12万* 80%)/8小时* 60 * 60 * 20%)=96笔/秒
一般情况下,为了系统健壮性考虑,我们会在预估计算得到的未来的TPS基础上扩个1.5倍即:该业务系统包含每年业务增长率TPS为=96*1.5倍=144笔/秒。
该系统性能测试最低支持的并发数为:如果规定该业务的平均响应时间不高于500毫秒,那么通过TPS=并发用户数/业务平均时间,就可以得到并发用户数=0.5秒*144笔/秒=72个,即系统最低要求支持的并发数为:72个
说明:这里平均响应时间不同的公司不同业务可接受的响应时间是不同的
一般对于在线实时交易:互联网企业:500毫秒以下,例如淘宝业务10毫秒左右金融企业:1秒以下为佳,部分复杂业务3秒以下保险企业:3秒以下为佳制造业:5秒以下就行。
即可得到该系统的TPS为144笔/秒,并发数为72个。

3、横向TPS扩展

假设单节点我们通过上面的方法,计算出来的TPS为150笔/秒,平均响应时间不高于500毫秒,并发用户数75个

现在我们想要系统支撑高并发数,通过扩展服务器数量来提升业务处理的能力。

那么,我们也可以计算横向TPS扩展增长率:

单节点TPS:150笔/秒2节点TPS:265笔/秒,则增长率为:(2节点TPS-单节点TPS)/(2节点-1)/单节点TPS=(265-150)/(2-1)/150≈76.67%3节点TPS:375笔/秒,则增长率为:(3节点TPS-单节点TPS)/(3节点-1)/单节点TPS=(375-150)/(3-1)/150≈75%4节点TPS:488笔/秒,则增长率为:(4节点TPS-单节点TPS)/(4节点-1)/单节点TPS=(488-150)/(4-1)/150≈75.11%5节点TPS:600笔/秒,则增长率为:(5节点TPS-单节点TPS)/(5节点-1)/单节点TPS=(600-150)/(5-1)/150≈75%6节点TPS:715笔/秒,则增长率为:(6节点TPS-单节点TPS)/(6节点-1)/单节点TPS=(715-150)/(6-1)/150≈75.33%7节点TPS:825笔/秒,则增长率为:(7节点TPS-单节点TPS)/(7节点-1)/单节点TPS=(825-150)/(7-1)/150≈75%8节点TPS:940笔/秒,则增长率为:(8节点TPS-单节点TPS)/(8节点-1)/单节点TPS=(940-150)/(8-1)/150≈75.24%9节点TPS:1050笔/秒,则增长率为:(9节点TPS-单节点TPS)/(9节点-1)/单节点TPS=(1050-150)/(9-1)/150≈75%10节点TPS:1165笔/秒,则增长率为:(10节点TPS-单节点TPS)/(10节点-1)/单节点TPS=(1165-150)/(10-1)/150≈75.19%

一般情况下,我们要求扩展服务器的数量进行高并发的处理,TPS增长率应在75%以上。

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

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PCL配置记录

PCL配置记录 1. Windows10vs2019pcl win10vs2019pcl 1.11.1 1.下载与安装 https://github.com/PointCloudLibrary/pcl/releases ) 双击exe安装 注意: ( ) 解压 “pcl-1.11.0-pdb-msvc2019-win64.zip”,将解压得到的文件夹中的内容添加“…\PCL…

云手机解决Tik Tok运营难题

对于海外营销的企业来说,Tik Tok是不可错过的宣传平台。本文将介绍Tik Tok运营过程中会遇到的几个问题,以及如何通过海外云手机解决。 Tik Tok运营的主要问题 1、高昂的硬件成本和封号风险 很多企业会选择矩阵式营销,但为了不封号每个账号都…

ansible的脚本:playbook剧本

(一)playbook的组成部分 tasks 任务,包含要在主机上执行的操作,使用模块定义这些操作,每一个任务都是一个模块的调用 variables 变量,存储和传递数据(和shell脚本中的变量是一个意思&#xf…

理解Java中锁的应用

一、死锁 1.1 定义: 当线程 A 持有独占锁a,并尝试去获取独占锁 b 的同时,线程 B 持有独占锁 b,并尝试获取独占锁 a 的情况下,就会发生 AB 两个线程由于互相持有对方需要的锁,而发生的阻塞现象&#xff0c…

雄雄的小课堂微信机器人流程图

大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。 最近改造了下微信机器人,新版本还未上线,预计下周一(12.25)左右能上线第一版。 下面是改造之后的流程图 大家可以看看,有疑问可…

【计算机视觉中的多视图几何系列】深入浅出理解针孔相机模型

温故而知新,可以为师矣! 一、参考资料 《计算机视觉中的多视图几何-第五章》-Richard Hartley, Andrew Zisserman. 二、针孔模型相关介绍 1. 重要概念 1.1 投影中心/摄像机中心/光心 投影中心称为摄像机中心,也称为光心。投影中心位于一…

Ubuntu及Docker 安装rabbitmq

安装ubuntu 前 先暴露端口: 5672 用于与mq服务器通信用 15672 管理界面使用的端口 docker命令:docker run -itd --name ubuntu -p 5672:5672 -p 15672:15672 ubuntu 进入docker : docker exec -it ubuntu /bin/bash 步骤: 1. 更新安装源…

算法学习系列(九):离散化

目录 引言一、离散化概念二、离散化模板三、例题四、测试 引言 这个离散化我的理解就是你如果要用到数组的下标进行存数,会有多个询问针对下标进行操作,然后这个下标特别的大,而且存的数也是特别的分散,举个例子就是有三个数&…

VScode 工作区配置 和 用户配置

一、工作区配置 通常不同的项目都有不同的配置,我一般都是使用eslint和prettier一起用,所以经常会有这几个文件: 这里简单介绍一下这几个文件的作用吧。 1.vscode文件夹下 一般有两个文件,extensions.json和settings.json。 e…

07 Vue3中的三元表达式

概述 三元表达式时JavaScript中比较常用的一种原生语法,能够在一行代码中实现if-else的分支逻辑。 在Vue的双大括号中,我们也可以使用三元表达式去实现一些简单的条件渲染。 基本用法 我们创建src/components/Demo07.vue,先尝试一下三元表…

【泛型中K T V E? Object等分别代表什么含 义】

✅ 泛型中K T V E? Object等分别代表什么含义 ✅ 典型解析✅代码示例 ✅ 典型解析 E - Element (在集合中使用,因为集合中存放的是元素) T-Type (Java 类) K- Key (键) V - Value (值) N - Number (数值类型) ? - 表示不确定的iava类型 (无限制通配符类型) …

linux 中 C++的环境搭建以及测试工具的简单介绍

文章目录 makefleCMakegdb调试 与 coredumpValgrind 内存检测gtest 单元测试 makefile 介绍 安装 : sudo apt install make makefile 的规则: 举例说明 包括:目标文件 、 依赖文件 、 生成规则 使用 : make make clean CMake : CMake是一个…

OpenHarmony 4.0 Release发布,同步升级API 10

不久之前,OpenHarmony 正式发布了4.0 版本,开发套件也同步升级到 API 10。相比 3.2 Release 版本,4.0 版本新增 4000 多个 ArkTS API,应用开发能力更加丰富;HDF 新增 200 多个 HDI 接口,硬件适配更加便捷&a…

浅谈在线监测系统与配电能效平台在供水水厂的应用

贾丽丽 安科瑞电气股份有限公司 上海嘉定 201800 【摘要】针对自来水厂工艺老化资金有限的问题,设计水厂在线监测系统,采用安科瑞,对原水滤后水、出厂水进行采样分析,并通过基于组态的上位机系统实现水质数据的实时监测。该系统…

听GPT 讲Rust源代码--src/tools(23)

File: rust/src/tools/clippy/rustc_tools_util/src/lib.rs 在Rust源代码中,rust/src/tools/clippy/rustc_tools_util/src/lib.rs文件的作用是为Clippy提供了一些实用工具和辅助函数。 该文件中定义了VersionInfo结构体,它有三个字段,分别为m…

opencv入门到精通——图像上的算术运算

目录 目标 图像加法 图像融合 按位运算 目标 学习图像的几种算术运算,例如加法,减法,按位运算等。 您将学习以下功能:cv.add,cv.addWeighted等。 图像加法 您可以通过OpenCV函数cv.add()或仅通过numpy操作res …

账号多、用户咨询量大无法及时回复?「互动管理」助力高效经营!

随着互联网行业不断向纵深发展,内容形态与营销场景也更加多元化。越来越多的品牌跑步入场,深耕社媒营销,建立多平台营销矩阵,借助社媒平台的全域态势助力品牌增长。 据云略《2023品牌新媒体矩阵营销洞察报告》显示,目前…

win11下配置visual studio 2022+PCL1.13.1

第一部分:visual studio2022 安装 vs官网网址如下:https://visualstudio.microsoft.com/zh-hans/vs/ 第一步:我们打开官网链接,按如下操作点击下载免费版本的exe文件 第二步:打开下载目录下的安装文件进行安装&#…

选择移动订货系统源码的四大原因

移动订货系统需要选择源码支持的厂家,有以下四个原因,其中第四个是比较重要的,大家点个关注点个赞,我们接着往下看。 1.可自行定制:支持源码的移动订货系统可以根据企业的具体需求进行定制开发,满足企业特定…

vue3 登录页和路由表开发

目录 应用场景/背景描述: 开发流程: 详细开发流程: 总结/分析: 背景描述 在上一篇的基础上开始开发,element-plusvue3 上一篇说道详细迁移的过程,如下: 所以我这篇开始了第一步&#xff0c…