Mysql 基准测试
基准测试是针对系统设计的一种压力测试。
一、基准测试的主要工作:
1.验证基于系统的一些假设,确认这些假设是否符合实际情况(我们在测试中主要做的也还,只是一些功能测试)。
2.重现系统中的某些异常行为,以解决这些异常。(如:web中 用户登陆经常失败,501,502的错误。)
3.测试当前系统的运行情况。(系统稳定性,bug fix ,什么的)。
4.模拟比当前系统更高的负载。
5.规划未来的业务增长。
6.测试应用适应可变环境的能力。
7.测试不同硬件,软件,系统之间的配置。
8.证明新采购的设备是否配置正确。
二、基准测试的策略
1.针对整体系统的测试
(1)测试整个应用系统,包括Web 服务器、应用代码、网络和数据库是非常有用的,因为用记关注的并不仅仅是Mysql本身的性能,而是应用整体的性能。
2.只测试单个组件,Mysql
(1) 需要比较不同的schema 或查询的性能
(2)针对应用中某个具体问题的测试
(3)为了避免漫长的基准测试,可以通过一个短期的基准测试,做快速的“周期循环”来检测出某些调整后的效果。
三、测试指标
1.吞吐量 2.响应时间,延迟(在web 应用中 如果请求到响应,超1S就要找问题了。)
3.并发(这个在开发中真的做的很少,要改改了。)
4.可扩展性(基本是没有,考虑接口,设计,这些东西了,在开发组件应用时,要注意的。)
四、基准测试方法
1.使用真实数据的子集
2.使用错误数据分布
3.在多用户场景中,只做单用户的测试
4.在单服务器上测试分布式应用
5.与真实行为不匹配
6.反复执行一个查询(mysql 数据缓存)
7.没有检查错误(如一个本应该很慢的sql 变的很快,可能是有bug的)
8.忽略系统预热(如硬盘,在刚开始读取速度很快,过上一段时间,就会降下来)
9.使用默认配置
10.测试时间太短
只有避免了上述的错误,才能走上改进质量的漫漫长路。
读《高性能mysql》记录