摘要:当并发性增加时,需要测量吞吐量是否下降,响应时间是否变长可扩展性可扩展性不是压力测试的指标,可扩展性指标对于容量规范非常有用,它可以提供其他测试无法提供的信息,来帮助发现应用的瓶颈归根结底,应该测试那些对用户来说最重要的指标。
简单来说,基准测试是则很难对系统设计的一种压力测试,通常的目标是为了掌握系统的行为。但也有其他原因。比如重现某个系统状态,或者是做新硬件的可靠性测试。
因为基准测试是唯一有效方便的,可以学习系统在给定的工作负载下会发生什么的方法。系统测试可以观察在不同压力下的行为,评估系统的容量,掌握哪些是重要的变化,或者观察系统如何处理不同的数据。
基准测试可以完成的工作:
基准测试的一个主要问题在于其不是真实压力的测试。基准测试施加给系统的压力相对真实压力来说,通常会比较简单,因为真实压力是不可预期而且变化多端的,有时候情况会过于复杂而难以解释。
那么基准测试和真实压力不同在什么地方?
结论就是,我们只能进行大概的测试,来确定系统大致的余量有多少。当然也可以做一些真实的压力测试,但在构造数据集和压力要特别小心,而且这样就不再是基准测试了。基准测试要简单直接,结果之间相互容易比较
两种主要策略:
针对测试整个系统做集成式测试而不是多带带测试的原因有以下几点:
但是集成式测试很难建立,如果基准测试的设计有问题,那么结果就无法反映真实的情况,决策也可能是错的。
所以有的时候不需要了解整个应用的情况,而只需要关注MySQL的性能,至少在项目初期可以这样做,以下情况,可以选择只测试MySQL:
另外,如果能够在真实的数据集上执行重复的查询,那么也是有用的,如果可能,可以采用生产环境的数据快照。不幸的是,设置一个基于真实数据的基准测试复杂而且耗时,而且开发一个新应用,只有很少的数据量,如果想要测试规模扩张后的性能表现,只能通过模拟大量的数据和压力进行
不同的指标需要用不同的方法测试
以下指标:
归根结底,应该测试那些对用户来说最重要的指标。因此应该尽可能地去收集一些需求,然后基于这些需求去设计基准测试
以下是测试的常见错误
设计和规划基准测试
标准的基准测试,应该确认选择了合适的测试方案
设计专用的基准测试是很复杂的,往往需要一个迭代的过程。首先需要获得生产数据集的快照(很容易还原),然后,针对数据运行查询(选择一个有代表性的时间段,如果时间段选择比较小,则可以选择多个时间段,这样有助于覆盖整个系统的活动状态)
3.可以在不同级别记录查询
4.即使不需要创建专用的基准测试,也要写下测试规划(测试数据,系统配置步骤,如何测量和分析结果,以及预热的方案)
5.写一些脚本分析测试结果
基准测试应该运行足够长的时间,这一点非常重要,应当在稳定状态下测试并观察
一个常见的错误测试方式是,只执行一系列短期的测试。这种不花费足够时间去完成准确完成的基准测试,那么已经花费的所有时间都是一种浪费,所以有时候要相信别人的测试结果,并使用
可以编写一个shell脚本来记录测试结果,配置文件,测试指标,脚本和其他相关说明都保存在其中
首先,获得准确测试结果的最好办法,是回答一些关于基准测试的基本问题:
然后,确认测试结果是否可重复,每次测试之前都要确保系统的状态一致
如果测试过程会修改数据或者schema,那么每次测试前,需要利用快照还原数据
每次测试时修改的数据应该尽可能地小,一般情况下都是通过迭代的方式
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/119610.html
摘要:基准测试应用验证系统的一些假设重现系统异常测试系统当前的运行情况模拟更高的负载规划业务增长测试应用适应可变环境的能力测试不同硬件软件和操作系统的配置策略针对整个系统的整体测试集成式单独测试单组件式测试指标吞吐量在线事务处理单位为每秒事务数响 1. 基准测试 1.1 应用 验证系统的一些假设重现系统异常测试系统当前的运行情况模拟更高的负载规划业务增长测试应用适应可变环境的能力测试不同硬件...
摘要:优化服务器设置有大量的可以修改的参数但不应该随便修改应该将更多时间花在的优化索引查询设计上配置文件路径通常在不建议动态修改变量因为可能导致意外的副作用通过基准测试迭代优化具体配置项设置请参照官网手册这里只提及部分配置内存使用确定可使用内存上 1. 优化服务器设置 MySQL有大量的可以修改的参数,但不应该随便修改.应该将更多时间花在schema的优化,索引,查询设计上 配置文件路径:...
摘要:单位是页,设置大小取决于磁盘的每秒输入输出量或读写次数默认开启,可动态更新缓冲池页旧数据热数据。日过主库再次探测到从库恢复了,则自动再次回到半同步复制模式表示是否允许每个事务提交后都要等待的接收确认信号。 mysql5.5开始内置innodb并默认engine 充分利用CPU多核处理能力 my.cnf里添加innodb_read_io_threads = 8;innodb_write_...
摘要:高性能第版美施瓦茨等著宁海元等译北京电子工业出版社第页。表示原子性一致性隔离性和持久性。一个运行良好的事务处理系统,必须具备这些标准特征。持久性一旦事务提交,则其所做的修改就会永久保存到数据库中。事务可以读取未提交的数据,这也被称为脏读。 一、MySQL逻辑架构 为了充分发挥MySQL的性能并顺利地使用,就必须理解其设计。 1. 逻辑架构 最上层的服务并不是MySQL所独有的,大多数基...
摘要:服务器逻辑架构连接线程处理基于的工具类似实现连接处理授权认证安全等查询缓存解析器实现查询解析分析优化缓存内置函数和跨存储引擎如存储过程触发器视图等存储引擎数据的存储和提取不会解析独立与上层服务器通过进行通信并发控制每种存储引擎有不同的锁策略 1. MySQL服务器逻辑架构 连接/线程处理: 基于C/S的工具类似,实现连接处理,授权认证,安全等.查询缓存/解析器: 实现查询解析,分析,优...
阅读 1104·2021-11-24 09:38
阅读 3070·2021-11-22 12:03
阅读 3779·2021-11-11 10:59
阅读 1932·2021-09-28 09:36
阅读 857·2021-09-09 09:32
阅读 3208·2021-08-05 10:00
阅读 2359·2021-07-23 15:30
阅读 2840·2019-08-30 13:12