返回顶部
首页 > 资讯 > 数据库 >如何进行MySQL并行复制测试
  • 542
分享到

如何进行MySQL并行复制测试

2024-04-02 19:04:59 542人浏览 独家记忆
摘要

今天就跟大家聊聊有关如何进行Mysql并行复制测试,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。    对于主从延迟,其实一

今天就跟大家聊聊有关如何进行Mysql并行复制测试,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

   对于主从延迟,其实一直以来就是一个颇有争议的话题,在mysql阵营中,如果容忍一定的延迟的场景,通过主从来达到读写分离是个很不错的方案,但是延迟率到底有多高可以接受,新版本中的并行复制效果怎么样,在不同的版本中是否有改变,我们能否找到一些参考的数据来佐证,这一点上我们可以通过一些小测试来说明。

   首先来为了基本按照同一个参考标准,我们就在同一台服务器上安装了5.6,5.7的Mysql服务,另外一台服务器上搭建了从库。

   数据库版本为5.6.23 Percona分支, 5.7.17 MySQL官方版本

服务器上安装了pt工具用来检测主从延迟,安装了新版本的sysbench来做加压测试。

      主库:  10.127.128.227   RHEL6U3  32G  R710
      从库:  10.127.128.78    RHEL6U3  32G   R710      为了基本能够达到同一个基准啦进行测试,我先启动5.6的数据库服务,测试完毕,启动5.7的服务。避免多实例的并行干扰。

初始化数据采用了类似下面的脚本,5.6, 5.7版本中都差不多。

创建了10个表,然后插入了500万数据来测试。

sysbench /home/sysbench/sysbench-1.0.3/src/lua/oltp_read_write.lua --mysql-user=root --mysql-port=3308 --mysql-Socket=/home/mysql_5.7.17/mysql.sock --mysql-host=localhost --mysql-db=sysbenchtest --tables=10 --table-size=5000000 --threads=50 prepare

加压测试使用如下的sysbench脚本,持续时间300秒sysbench /home/sysbench/sysbench-1.0.3/src/lua/oltp_read_write.lua --mysql-user=root --mysql-port=3308 --mysql-socket=/home/mysql_5.7.17/mysql.sock --mysql-host=localhost --mysql-db=sysbenchtest --tables=10 --table-size=5000000 --threads=50 --report-interval=5 --time=300 run查看主从延迟,使用pt-heartbeat来完成。

开启后台任务:

pt-heartbeat h='10.127.128.78',u='pt_checksum',p='pt_checksum',P=3307 -D sysbenchtest --create-table --interval=1 --update --replace --daemonize开启主从延迟检测:

pt-heartbeat h='10.127.128.78',u='pt_checksum',p='pt_checksum',P=3308 -D sysbenchtest --table=heartbeat --monitor --master-server-id=3308 --frames=5s --interval=5 
因为主从复制在5.6, 5.7还是存在一定的差别,我们就分别测试单线程多线程复制的差别和改进点。

并行复制的基本配置

5.6 开启并行复制

mysql>stop slave;
mysql>set global slave_parallel_workers=8;
mysql>start slave;

5.7 开启并行复制

其中值得一提的是5.7做了一些改进,slave-parallel-type= DATABASE /LOGICAL_CLOCK
-- DATABASE -- 基于库级别的并行复制 与5.6相同
-- LOGICAL_CLOCK -- 逻辑时钟,主上怎么并行执行的,从上也是怎么并行回放的。所以我们开启了logical_clock.

mysql> stop slave;
mysql> set global slave_parallel_type='LOGICAL_CLOCK';
mysql> set global slave_parallel_workers=8;
mysql> stop slave;

并行复制的效果对比图

以下是得到的一个概览图,横轴是测试时间,纵轴是延迟时间。

总体来看,MySQL 5.6中的并行复制效率提升不够明显,5.7中的提升效果非常显著。

如何进行MySQL并行复制测试

看完上述内容,你们对如何进行MySQL并行复制测试有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网数据库频道,感谢大家的支持。

您可能感兴趣的文档:

--结束END--

本文标题: 如何进行MySQL并行复制测试

本文链接: https://lsjlt.com/news/66219.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何进行MySQL并行复制测试
    今天就跟大家聊聊有关如何进行MySQL并行复制测试,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。    对于主从延迟,其实一...
    99+
    2024-04-02
  • 如何进行sysbench测试
    如何进行sysbench测试,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。sysbench支持以下几种测试模式:1、CPU运算...
    99+
    2024-04-02
  • 如何进行mysql性能测试库的CRASH恢复
    今天就跟大家聊聊有关如何进行mysql性能测试库的CRASH恢复,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 环境:O...
    99+
    2024-04-02
  • 如何进行MySQL构造测试数据
    这篇文章给大家介绍如何进行MySQL构造测试数据,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 构造测试数据(笛卡尔积,6 次100 万)create ta...
    99+
    2024-04-02
  • 如何进行opencv vector 测试
    这篇文章给大家介绍如何进行opencv vector 测试,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。#include <iostream>#include <cv.h>#...
    99+
    2023-06-04
  • Java如何使用JMeter进行高并发测试
    这篇文章主要介绍了Java如何使用JMeter进行高并发测试,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。软件的压力测试是一种保证软件质量的行为.在金融,电商等领域应用比较普...
    99+
    2023-06-25
  • 在进行并行表测试用例时如何推迟测试服务器关闭?
    大家好,今天本人给大家带来文章《在进行并行表测试用例时如何推迟测试服务器关闭?》,文中内容主要涉及到,如果你对Golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!问...
    99+
    2024-04-05
  • 工具 | 如何对 MySQL 进行 TPC-C 测试?
    作者:丁源 RadonDB 测试负责人 负责 RadonDB 云数据库、容器化数据库的质量性能测试,迭代验证。对包括云数据库以及容器化数据库性能和高可用方案有深入研究。 |背景 根据 DWorks 2020 年发布的《中国自研数据库登...
    99+
    2015-03-18
    工具 | 如何对 MySQL 进行 TPC-C 测试?
  • 如何进行Java ImageIO图像合并效率测试
    这篇文章给大家介绍如何进行Java ImageIO图像合并效率测试,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。通过纯Java的方式往一张底图(地图)上添加小图片(布点),发现效果并不理想。何为纯java方式?就是说这...
    99+
    2023-06-17
  • Mysql5.7如何并行复制
    这篇文章将为大家详细讲解有关Mysql5.7如何并行复制,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。启用MySQL并行复制MySQL 5.7的并行复制建立在组提交的基础...
    99+
    2024-04-02
  • 如何在Oracle中进行备份恢复测试
    在Oracle中进行备份恢复测试的步骤如下: 创建一个测试数据库:首先,在Oracle数据库中创建一个新的测试数据库,用于进行备...
    99+
    2024-04-09
    Oracle
  • python如何进行基准测试
    基准测试属于性能测试的一种,用于评估和衡量软件的性能指标。我们可以在软件开发的某个阶段通过基准测试建立一个已知的性能水平,称为"基准线"。当系统的软硬件环境发生变化之后再进行一次基准测试以确定那些变化对性能的影响。 ...
    99+
    2022-06-02
    python 基准测试 python 测试
  • Android如何进行单元测试
      Menifest.xml中加入: <application>中加入: <uses-library android:name="andro...
    99+
    2022-06-06
    单元 单元测试 测试 Android
  • 如何进行Tokudb安装测试
    如何进行Tokudb安装测试,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 一 前言   To...
    99+
    2024-04-02
  • 如何进行sysbench压力测试
    如何进行sysbench压力测试,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 对于很多线上业务而言,如果有新服务器,新的...
    99+
    2024-04-02
  • 如何进行java 8 forEach测试
    本篇文章为大家展示了如何进行java 8 forEach测试,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。package staticTest;import java.util.ArrayList;...
    99+
    2023-06-03
  • 如何进行C++单元测试?
    如何进行C++单元测试?C++是一种广泛使用的编程语言,常用于开发各种类型的应用程序。为了确保代码的质量和可靠性,进行单元测试是非常重要的。本文将介绍如何进行C++单元测试,以帮助开发人员更好地掌握这一技能。学习并选择合适的测试框架在进行C...
    99+
    2023-11-02
    测试框架 断言 C++ 单元测试
  • 如何进行MySQL 5.5 隔离级别的测试
    这篇文章将为大家详细讲解有关如何进行MySQL 5.5 隔离级别的测试,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 REPEA...
    99+
    2024-04-02
  • 如何进行MySQL主从GTID复制修复
    如何进行MySQL主从GTID复制修复,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。GTID是5.6新增特性,减少DBA运维的工作。在以前一主...
    99+
    2024-04-02
  • 浅析MySQL并行复制
    01 并行复制的概念    在MySQL的主从复制架构中,主库上经常会并发的执行很多SQL,只要这些SQL没有产生锁等待,那么同一时间并发好几个SQL线程是没有问题的。    ...
    99+
    2022-05-31
    MySQL 并行复制 mysql 复制
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作