• 【MySQL】如何对MySQL复制性能做基准测试


    有很多工具可以用来测试MySQL的性能。比如:

    sysbench – https://github.com/akopytov/sysbench
    BMK-kit – http://dimitrik.free.fr/blog/posts/mysql-perf-bmk-kit.html
    mysqlslap – https://dev.mysql.com/doc/refman/8.0/en/mysqlslap.html
    LinkBench – https://github.com/facebookarchive/linkbench

    不过,大多数工具都是针对单个MySQL实例。如果你想测试MySQL复制的性能,还需要做额外的工作。

    1.复制是否可以追上源库

    为了回答这个问题,需要在主库上运行负载,并监控复制是否有延迟。可以通过show replica status、show slave status来监控,尤其是关注Seconds_Behind_Source和Seconds_Behind_Master的值。也可以通过pmm的MySQL Replication Summary页面的MySQL Replication Lag图表查看。 

    更高级的是检查比较Exec_Source_Log_Pos(Exec_Master_Log_Pos), Relay_Log_File和Read_Source_Log_Pos ( Read_Master_Log_Pos ),Source_Log_File。因为Seconds_Behind_Source会受长时间运行命令的影响,返回的值会不准。

    你可以调优从库,通过开启并行复制来减少延迟。

    2.从库在应用日志的时候是否可以提供查询

    一旦对复制延迟还能接受,就可以开始在从库添加负载并测试其性能。例如,如果计划使用从库来处理只读查询,则可以在其上运行只读基准测试。你需要观察只读基准和复制延迟的性能。

    如果计划在从库上运行分析查询:先测试。如果计划使用此从库进行备份:进行备份并测量它将如何影响复制的性能。

    3.同步复制

    提供同步的方案有:Galera,Percona XtraDB Cluster(PXC),Group Replication,这些方案受到流控制停止时间(flow control paused time)的影响。

    对于PXC/Galera集群影响,可以使用pmm进行监控flow control paused time。也可以监控变量:wsrep_flow_control_paused

    对于MGR,你可以监控performance_schema.replication_group_member_stats表中的COUNT_TRANSACTIONS_REMOTE_IN_APPLIER_QUEUE列,该列显示了从库的队列中有多少个事务在等待。也可以查看pmm中的MySQL Group Replication界面的Replication Lag图表。

    4.最好的测试是你的生产环境

    虽然很难在接受用户写入的服务器上创建这样的基准,但对于从来说,它相对容易。你需要做的就是创建生产服务器的从库,但尚未使其可用于应用程序。 

    首先,观察它是否可以在空闲时处理复制延迟,然后开始向它添加负载。也可以使用ProxySQL的镜像功能;但是,需要检查本文中描述的某些限制是否仍然适用。

    5.从库多久能追上主库

    你可能想要测试的另一件事是,在复制更新延迟后,从库恢复的速度有多快。

    要执行此测试,请在运行主库的负载时停止副本,在一定时间后重新启动它,并观察复制延迟。如果你正在测试提供只读负载的从库,请继续进行负载测试。

    好执行停止、等待和启动一系列命令,这样就可以控制从库停止的时间。例如,要停止从库一小时,请使用以下命令:

    stop replica;
    select sleep(3600);
    start replica;

    然后等待,直到复制运行:

    SELECT SERVICE_STATE FROM performance_schema.replication_applier_status;

    该查询返回on结果后,启动监控Seconds_Behind_Source的值,直到变成0,并记录下时长。

    最后

    可以使用推荐用于单个MySQL Server的相同基准测试工具来针对复制设置执行性能测试,只需要监控复制延迟和其他性能特征。

  • 相关阅读:
    What Is Pros and Cons
    计算机编程简史图
    封装事件订阅发布 on emit off
    父子通信VUE
    如何让textarea不可拖拽
    [导入]Web Client Software Factory系列(1):初识与预备知识
    [导入]Enterprise Library v3中的新成员:Application Block Software Factory
    [导入]Web Client Software Factory 开发路线图
    [导入]微软Web Client Software Factory RC版发布
    [导入]Web Client Software Factory系列(3):ViewPresenter模式
  • 原文地址:https://www.cnblogs.com/abclife/p/16535179.html
Copyright © 2020-2023  润新知