目录
-
什么是基准测试
进行具体数据库设计和SQL优化的内容之前,我们先要了解一如何对我们的系统的性能进行测量,只有知道了如何对系统的性能进行测量,才能知道我们的优化是否起到了应有的作用,对系统性能进行测量方式我们就称为基准测试。
解析:基准测试是针对系统设计的一种压力测试,可以用来观察系统在不同压力下的行为,评估系统的容量、观察系统如何处理不同的数据。
问题:基准测试和压力测试有什么区别?
答:
- 基准测试要尽量的直接和简单,使各个结果之间容易比较了,所使用的数据通常是由测试工具所生成的,只能用于评估服务器的处理能力;
- 而压力测试通常是对真实的业务数据进行测试,以获得真实的业务系统所承受的压力,所以基准测试只是一种简化了的压力测试,基准测试给系统带来的压力,通常只能用于测量系统的一些性能,而忽略了对系统逻辑的压力测试。
我们要对一个网站进行压力测试,是要针对不同的主题来进行。
比如:购车流程的这种压力测试,我们就按照购物流程的应用逻辑来设计我们的压力测试要包括哪些购物流程,所使用的数据和查询的也都是,在整个购物流程中所真实用到的。基准测试:我们并不会关心目前Mysql所运行的系统的业务逻辑是什么!我们可以用一个非常简单的查询,通过多线程并发来衡量调优后的结果是否有效!我们所说的查询的数据的真实性和业务环境没有关系。
-
基准测试的目的
问:什么是基准测试的目的?
答:
解析:为了测试Mysql服务器当前运行的情况,如果不清楚当前的这种系统性能,我们就无法确认某些优化实际产生的效果会是怎么样,同时那我们也可以利用历史的基准测试结果来分析、诊断应用中出现的性能问题。
解析:通常我们所做的就是在一定数量的情况下,不断的增加数据库的并发来观察QPS、TPS的变化,判断数据库的当前配置在多少并发情况下是最好的,但是一旦超过了某个并发,可能就会出现性能下降的情况。
解析:基准测试还可以帮助我们测试不同的硬件、软件和操作系统。
问:基准测试能解决什么问题?
答:
- 配置的情况下数据库的性能,比如RAID 5和RAID 10哪种更适合我们当前系统;
- 如果系统从机械硬盘升到SSD固态存储对随机写的性能会有什么帮助;
- Linux下不同的磁盘分区格式对数据库性能是否会有影响,升级MySQL的版本是否能改善性能;
- 对当前数据采用不同的存储引擎,会对我们形成什么样的影响。
解析:我们还可以利用基准测试来证明,我们新采购的硬件设备是否配置是正确的,在新的硬件系统正式上线到生产环境之前,我们一定要对这个新的系统进行基准测试。
问:新系统上线之前基准测试的好处是什么?
答:帮助了解当前的新的硬件系统的基准线,帮助我们测试当前的新系统,是否存在由于配置错误,而造成的性能不如我们预期的这种情况的发生。
-
如何进行基准测试(基准测试的方法)
-
MYSQL基准测试的常见指标
解析:如果调整后的TTS和QPS有明显的增长,那么就可以说我们的调试是成功的,否则就要考虑我们所使用优化方法是否正确;
解析:响应时间是另一个常用的基准测试指标,这个指标用于衡量完成一个测试任务所花费的整体时间。
一个测试任务通常会包括很多的测试项,就像我们对一个sql进行性能测试,通常也会对这个sql执行很多次,那么具体的测试情况和测试用例是不同的,响应的时间单位不同。
问:同时在线的人数代表并发数量吗?
答:不代表。
一方面对于大多数用户,只是简单的浏览WEB页面上的显示的信息,这并不等于WEB服务器的并发性,WEB服务器的并发量也不等同于数据库的并发量,即使WEB服务器当前有几千上万的会话,到Mysql端并发可能只有几十个甚至可能会更少。
如何获取免费的服务器的情况Link
小总结:
-
基准测试准备
-
基准测试演示实例
-
Mysql基准测试工具之mysqlslap
mysqlslap
-
Mysql基准测试工具之sysbench
sysbench
-
sysbench基准测试演示实例
实例
-
总结
基准测试的需要关注的是,正在工作中的并发的操作,或者是同时工作的线程的数量,而不是有多少逻辑库的线程。