性能测试并发量评估新思考

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
应用实时监控服务-应用监控,每月50GB免费额度
应用实时监控服务-用户体验监控,每月100OCU免费额度
简介: 性能测试并发量评估新思考

性能测试并发量评估新思考

相信很多人在第一次做压力测试的时候,对并发用户数的选择一直有很多的疑惑,那么行业内有一些比较通用的并发量的计算方法,但是这些方法在如今微服务的架构下多少会有一些不适合,下面的文章我们对这些问题进行一些讨论,说一说我的思考。

传统的并发量的计算方法

下面介绍一些行业内的通用的计算方法,但是这些方法也不是绝对正确的方法,这些仅仅是压力测试并发用户数的一种计算方法,但是最后是不是n的并发就可以支持m级别的用户也是由被测系统逻辑复杂的决定的,可以用如下的一种方法确定初始开发压力测试的并发用户数。

计算方法一

  • 1)平均并发用户数为 C = nL/T

  • 2)并发用户数峰值 C‘ = C + 三次根号C

其中C是平均并发用户数,n是login session的数量,L是login session的平均长度,T是值考察的时间长度,C’是并发用户数峰值。

例1,假设系统A,该系统有3000个用户,平均每天大概有400个用户要访问该系统(可以从系统日志从获得),对于一个典型用户来说,一天之内用户从登陆到退出的平均时间为4小时,而在一天之内,用户只有在8小时之内会使用该系统。

平均并发用户数为:C = 400*4/8 = 200 并发用户数峰值为:C‘ = 243

例2, 某公司为其170000名员工设计了一个薪酬系统,员工可进入该系统查询自己的薪酬信息,但并不是每个人都会用这个系统,假设只有50%的人会定期用该系统,这些人里面有70%是在每个月的最后一周使用一次该系统,且平均使用系统时间为5分钟。

则一个月最后一周的平均并发用户数为(朝九晚五): n = 170000*0.5*0.7/5 = 11900; C= 11900*5/60/8 = 124 C'=129

计算方法二

对绝大多数场景,我们用(用户总量/统计时间)影响因子(一般为3)来进行估算并发量。 比如,以乘坐地铁为例子,每天乘坐人数为5万人次,每天早高峰是7到9点,晚高峰是6到7点,根据8/2原则,80%的乘客会在高峰期间乘坐地铁,则每秒到达地铁检票口的人数为5000080%/(36060)=3.7,约4人/S,考虑到安检,入口关闭等因素,实际堆积在检票口的人数肯定比这个要大,假定每个人需要3秒才能进站,那实际并发应为4人/s*3s=12,当然影响因子可以根据实际情况增大。

C=12

计算方法三

比如一个网站,每天的PV大概1000w,根据2/8原则,我们可以认为这1000w pv的80%是在一天的9个小时内完成的(人的精力有限),那么TPS为:1000w80%/(93600)=246.92个/s,取经验因子3,则并发量应为:

C=246.92*3=740

计算方法四

C = 系统最大在线用户数的8%到12%

计算方法五

C=(Think time + 1)*TPS

微服务下的并发估算

如上的并发估算无论是机遇用户数量的计算、还是机遇访问行为的计算都是基终端用户的访问模型进行的一些计算。这些计算方法在当前微服务的架构下有可能有些并不是十分准确,假设有如下一个接口的访问模式。

一个页面包含了4个区域,这四个区域分布调用API A、API B、API C和API D,API A会调用API X,API B和API C会调用API Z,API D会调用API Y。那么假设我们用上面的任何一种方法计算出来该页面的并发量是500,那么从如上示意图中我们可以看出,如果我们用任意一种压力测试工具测试对应接口是500并发,并不对。因为微服务之间的调用,有一些服务有可能会出现访问了激增的情况,这个激增有可能远远大于我们原始的计算评估值。
API Z 因为有三个调用,并且这三个调用都是来自页面的访问,因此Z的并发量应该从1500的并发量作为基准开始进行压力测试,这样评估出来结果才有参考价值。因此微服务下的每个服务的并发量,应该在服务治理后,梳理清楚微服务的调用关系,然后从访问页面的并发量的估算开始,然后逐步分析每一个微服务的最大并发量,在进行计算后作为压力测试的并发起始点,开始进行压力测试。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
23天前
|
机器学习/深度学习 人工智能 算法
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
BALROG 是一款用于评估大型语言模型(LLMs)和视觉语言模型(VLMs)在复杂动态环境中推理能力的基准测试工具。它通过一系列挑战性的游戏环境,如 NetHack,测试模型的规划、空间推理和探索能力。BALROG 提供了一个开放且细粒度的评估框架,推动了自主代理研究的进展。
34 3
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
|
26天前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法。本文介绍 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,同时提供 Python 实现示例,强调其在确保项目性能和用户体验方面的关键作用。
29 6
|
28天前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段。本文介绍了 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,强调了样本量、随机性和时间因素的重要性,并展示了 Python 在 A/B 测试中的具体应用实例。
29 1
|
2月前
|
存储 监控 网络协议
服务器压力测试是一种评估系统在极端条件下的表现和稳定性的技术
【10月更文挑战第11天】服务器压力测试是一种评估系统在极端条件下的表现和稳定性的技术
135 32
|
2月前
|
PyTorch 算法框架/工具 计算机视觉
目标检测实战(二):YoloV4-Tiny训练、测试、评估完整步骤
本文介绍了使用YOLOv4-Tiny进行目标检测的完整流程,包括模型介绍、代码下载、数据集处理、网络训练、预测和评估。
173 2
目标检测实战(二):YoloV4-Tiny训练、测试、评估完整步骤
|
2月前
|
弹性计算 网络协议 Linux
云服务器评估迁移时间与测试传输速度
云服务器评估迁移时间与测试传输速度
|
3月前
|
人工智能 测试技术 PyTorch
AI计算机视觉笔记二十四:YOLOP 训练+测试+模型评估
本文介绍了通过正点原子的ATK-3568了解并实现YOLOP(You Only Look Once for Panoptic Driving Perception)的过程,包括训练、测试、转换为ONNX格式及在ONNX Runtime上的部署。YOLOP由华中科技大学团队于2021年发布,可在Jetson TX2上达到23FPS,实现了目标检测、可行驶区域分割和车道线检测的多任务学习。文章详细记录了环境搭建、训练数据准备、模型转换和测试等步骤,并解决了ONNX转换过程中的问题。
|
4月前
|
安全 测试技术 网络安全
|
4月前
|
监控 测试技术 开发者
单元测试问题之单元测试的工作量,如何评估
单元测试问题之单元测试的工作量,如何评估
|
5月前
|
机器学习/深度学习 运维 算法
Doping:使用精心设计的合成数据测试和评估异常检测器的技术
在这篇文章中,我们将探讨测试和评估异常检测器的问题(这是一个众所周知的难题),并提出了一种解决方案被称为“Doping”方法。使用Doping方法,真实数据行会被(通常是)随机修改,修改的方式是确保它们在某些方面可能成为异常值,这时应该被异常检测器检测到。然后通过评估检测器检测Doping记录的效果来评估这些检测器。
57 0

相关产品

  • 性能测试