1.为什么需要基准测试
基准测试是唯一方便有效的可以学习系统在给定的负载下会发生什么的方法。即基准测试可以在系统实际负载外创造一些虚构场景进行测试。在进行实际上线前,一定要使用基准测试。当然,基准测试也只能是大致评估。
2.基准测试的策略
一般有两种:集成式(测试整个系统)和单组件式(单独测试Mysql)。通常来说,应该关注项目的整体测试,但在以下场景并且在项目初期,可以单独测试Mysql:
a.需要比较不同的schema或查询的性能。
b.针对应用中某个具体问题的测试。
c.为了避免漫长的基准测试,可以通过一个短期的基准测试,做快速的“周期循环”,来检测出某些调整后的效果。
通常来说,我们很难在真实环境下进行基准测试,所以应该通过大量的模拟数据和压力来进行基准测试。
3.基准测试的指标
吞吐量:档位时间内事务的处理数。单位为每秒事务数(TPS)和每分钟事务数(TPM)。
响应时间或延迟:测试任务整体所需时间。通常采用百分比响应时间来替代最大响应时间。
并发性:任意时间内有多少同时发生的并发请求,而不是有多少个会话。
可扩展性:即线性扩展性,当工作量增加一倍时,吞吐量增加一倍,资源增加一倍时,吞吐量增加一倍,这就是线性可扩展性。大多数系统都没办法达到线性可扩展性。
4.基准测试方法
有许多错误的基准测试方法,避免了以下错误,才能进行测试质量的改进