基准测试
-
WHY :基准测试是唯一方便有效的可以观察系统在不同压力下的行为,评估系统的容量的方法(在新系统正式上线到生产环境之前,进行基准测试是个好习惯。切勿相信提供商的言辞)
-
基准测试并不是基于真实压力的测试,其压力通常较为单调简单。
-
除了数据量,数据和分布不同外,基准测试在实际情况下通常会要求快速完成,压测实施者往往会施以实际中远远不能达到的且单调请求的压力,虽然有益于测量系统最大性能容量,但往往会使系统或者压测软件崩溃,得不到真正符合实际的数值。
-
例如:当压测发现新系统可以支持原系统40倍的TPS时,不能简单的就认为新系统可以支持40倍的业务增长。因为系统是个复合的系统,除了单个业务的TPS还要考虑该业务与其他业务或者系统交互之间的交互,甚至网络和磁盘的因素都要考虑到其中。
-
结论:我们只能进行大概的测试,得出系统的大致余量。基准测试要尽量简单直接,结果之间要容易相互比较,成本低且易于执行。可以使用控制变量法。
-
-
基准测试的策略
- 集成式测试:针对整个系统的整体测试,能发现各部分之间缓存带来的影响,结果更真实,但是难建立。
- 单组件测试:单独测试MySQL。 需要比较不同的schema或查询的性能 / 针对应用中某个具体问题进行测试 / 为避免漫长的基准测试通过一个短期的单组件基准测试,做快速的周期循环,检测某些调整后的