热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

业务量、吞吐量和存量数据的设计关系

我们做性能测试的时候,用哪个词呢

务量:是不带时间单位。我们提到业务量的时候,一定会加一个时间单位。比如说,每天的业务量是100万笔,每年的业务量是1亿笔,等等


吐量,是自带时间单位的。吞吐量是单位时间内处理的业务数量。


务量和吞吐量的关系



那么问题来了,我们做性能测试的时候,用哪个词呢?业务量 or 吞吐量?


事实上,这两个词我们都用。因为他们的内涵不同。

 

业务部门的目标里,往往是一年业务量多少,一天业务量多少。而这些目标并不能勾勒出性能测试目标。因为性能测试要的是每秒的业务量有多少。

 

举个例子,一天24万笔业务,并不代表一小时处理1万笔,也许这24万笔是一个小时里处理完的。


用户往往等个一两秒钟还是可以忍的,如果等10秒钟,恐怕是觉得系统已经挂了。因此,系统要及时处理业务请求/报文,不能产生严重堆积,我们最关注的是一秒钟处理多少业务。而不是一小时多少,或者一天多少。

 

这里有存在一个换算的过程。


业务的要求是1天处理2000万笔业务,那么吞吐量目标是多少呢?


这就要看系统的性能模型,一天当中哪个时段业务量大,这个时段的业务量占一天业务量的百分比是多少?然后一步一步的计算出峰值时期一秒钟的业务量,它,就是我们的吞吐量目标。


量数据,有了吞吐量目标,但还不能立刻就动手做测试,这是因为,还有第三个概念,存量数据。

 

如果数据库是一个空库,或者数据库是个存有2亿条记录的库,那么SQL的增删改查的响应时间是完全不一样的。对应的业务响应时间也完全不一样。那么,我们数据库里面的存量数据应该设多少呢?


量数据和业务量的关系

预计的存量数据,就要用到业务量这个概念。


毕竟,存量数据是以年、月、天为单位的,而不是以秒为单位的。


比如说,这个系统的存量数据是3年,或者3天,而不是3秒。

 

并且,计算一年的存量数据,肯定不是用峰值每秒的业务量*3600*24*365来计算的。而是用到业务部门提到的业务量。

 

比如,今年业务量预计100亿笔,预计年增长率是50%。那么,如果要测试系统能否满足3年以后的需求,就要这么计算:假设系统存量数据保存3年,那么3年后的存量数据是(100+100*1.5+100*1.5*1.5)亿笔。

 

三年后的吞吐量这么来计算:


假设一天业务最大的那个小时,占全天业务量的20%,业务量最大的一秒占这个小时的1/2000。假设一天业务量是A笔。


今年的每秒吞吐量目标B=A*20%*(1/2000)。假设性能模型不变,三年后的每秒吞吐量目标C=B*1.5*1.5

 


文章转载自微信:性能测试与调优



推荐阅读
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • Navicat Premium 15 安装指南及数据库连接配置
    本文详细介绍 Navicat Premium 15 的安装步骤及其对多种数据库(如 MySQL 和 Oracle)的支持,帮助用户顺利完成软件的安装与激活。 ... [详细]
  • 深入理解 Oracle 存储函数:计算员工年收入
    本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 构建基于BERT的中文NL2SQL模型:一个简明的基准
    本文探讨了将自然语言转换为SQL语句(NL2SQL)的任务,这是人工智能领域中一项非常实用的研究方向。文章介绍了笔者在公司举办的首届中文NL2SQL挑战赛中的实践,该比赛提供了金融和通用领域的表格数据,并标注了对应的自然语言与SQL语句对,旨在训练准确的NL2SQL模型。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 使用C#开发SQL Server存储过程的指南
    本文介绍如何利用C#在SQL Server中创建存储过程,涵盖背景、步骤和应用场景,旨在帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 本文探讨了适用于Spring Boot应用程序的Web版SQL管理工具,这些工具不仅支持H2数据库,还能够处理MySQL和Oracle等主流数据库的表结构修改。 ... [详细]
  • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
  • 本文深入探讨了 Java 编程语言的基础,特别是其跨平台特性和 JVM 的工作原理。通过介绍 Java 的发展历史和生态系统,帮助初学者理解如何编写并运行第一个 Java 程序。 ... [详细]
author-avatar
行者05965
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有