《高性能MySQL》 第二章 MySQL基准测试

为什么需要基准测试?
观察系统在不同压力下的行为,评估系统的容量,观察系统如何处理不同数据。

基准测试的策略
集成式策略:针对整个系统的整体测试;单组件式策略:单独测试MySQL。通常使用集成式测试
测试指标:
吞吐量:单位时间内的事务处理数。
响应时间/延迟:用于测试任务的总体时间,通常使用百分百响应时间,或者利用折线图来直观地观察分布情况。
并发性:MySQL的并发性并不等同于Web服务器的并发性。检测时要关注正在工作中的并发操作,当并发性操作增加时,测试吞吐量是否下降,响应时间是否变长等。
可扩展性:理想状态为线性扩展,即给系统增加一倍的工作或者一倍的资源,就能够获得两倍的结果,即吞吐量增加一倍。但是现实情况通常达不到要求。能够发现应用瓶颈。

基准测试方法
测试时不应该发生的错误:
使用真实数据的子集而不是全集,如现实需要几百G的数据量只用1G的数据量来用来测试;
使用错误的数据分布,实际数据常常有热点区域而不是均匀分布的;
使用不均匀的分布参数,每个用户信息并不会均匀读取;
多用户场景中只测试单用户;
与真实用户的行为不符,用户并不会不间断的点击链接而会有思考时间;
反复执行同一查询;
没有检查错误;
忽略了系统预热的过程;
使用默认的服务器配置;
测试时间太短...
总之要使测试过程尽量接近实际应用的情况。
设计和规划基准测试:
获得生产数据集的快照,需要很容易还原。对每一轮测试都要详细的记录下来,应该记录测试数据、系统配置和步骤、如何测量和分析结果和预热的方案等。
基准测试实验应该运行多长时间
应该运行足够长的时间,需要在系统稳定状态时测量性能。可以根据磁盘读写的吞吐量的时序图来判断。切忌跳过这一步,否则获得的数据准确性有限。
获取系统性能和状态
执行基准测试时需要尽可能多的收集被测试系统的数据。通过shell脚本(???)


......

猜你喜欢

转载自blog.csdn.net/weixin_40475469/article/details/78668064