展开全部

用 pt-table-checksum 时,会不会影响业务性能?

实验

实验开始前,给e68a843231313335323631343130323136353331333433653930大家分享一个小经验:任何性能评估,不要相信别人的评测结果,要在自己的环境上测试,并(大概)知晓原理。

我们先建一对主从:

然后用 mysqlslap跑一个持续的压力:

开另外一个会话,将 master 上的 general log 打开:

然后通过 pt-table-checksum 进行一次比较:

查看 master 的 general log,由于 mysqlslap 的影响,general log 中有很多内容,我们找到与 pt-table-checksum 相关的线程:

将该线程的操作单独列出来:

操作比较多,我们一点一点来说明:

这里工具调小了 innodb 锁等待时间。使得之后的操作,只要在 innodb 上稍微有锁等待,就会马上放弃操作,对业务影响很小。

另外工具调小了 wait_timeout 时间,倒是没有特别的作用。

工具将隔离级别调整为了 RR 级别,事务的维护代价会比 RC 要高,不过后面我们会看到工具使用的每个事务都很小,加上之前提到 innodb 锁等待时间调到很小,对线上业务产生的成本比较小。

RR 级别是数据对比的基本要求。

工具通过一系列操作,了解表的概况。工具是一个数据块一个数据块进行校验,这里获取了第一个数据块的下边界。

接下来工具获取了下一个数据块的下边界,每个 SQL前都会 EXPLAIN 一下,看一下执行成本,非常小心翼翼。

之后工具获取了一个数据块的 checksum,这个数据块不大,如果跟业务流量有冲突,会马上出发 innodb 的锁超时,立刻退让。

以上是 pt-table-checksum 的一些设计,可以看到这几处都是精心维护了业务流量不受影响。

工具还设计了其他的一些机制保障业务流量,比如参数 --max-load 和 --pause-file 等,还有精心设计的数据块划分方法,索引选择方法等。大家根据自己的情况配合使用即可达到很好的效果。

总结

本期我们介绍了简单分析 pt-table-checksum 是否会影响业务流量,坊间会流传工具的各种参数建议或者不建议使用,算命的情况比较多,大家都可以用简单的实验来分析其中机制。

还是那个观点,性能测试不能相信道听途说,得通过实验去分析。

mysql 查看主从_什么参数可以查看mysql主从复制是否正常相关推荐

  1. mysql xtrabackup 主从_使用 Xtrabackup 在线对MySQL做主从复制

    说明1.1 xtrabackupmysqldump对于导出10G以下的数据库或几个表,还是适用的,而且更快捷.但一旦数据量达到100-500G,无论是对原库的压力还是导出的性能,mysqldump就力 ...

  2. 阿里云查看mysql是否安装_阿里云CentOS服务器mysql安装

    1.下载mysql源安装包(cd /usr/local/mysql) # wget http://dev.mysql.com/get/mysql57-community-release-el7-8.n ...

  3. mysql半主从_转mysql半主从同步

    MySQL半同步复制 从MySQL5.5开始,MySQL以插件的形式支持半同步复制.如何理解半同步呢?首先我们来看看异步,全同步的概念 异步复制(Asynchronous replication) M ...

  4. mysql停止主从_不停止mysql服务配置主从

    不影响主库线上的服务前提下,增加从库,前提是线上的主库配置中已经开启binlog并且指定了server-id. linux主192.168.0.70 版本Centos6.7 nginx1.10 php ...

  5. MySQL数据库变量_数据库参数_MySQL变量_系统变量_用户变量

    文章目录 MySQL 变量分类 系统变量 查看系统变量 设置系统变量 如何通过配置文件来设置变量值 通过命令行选项来设置变量值 动态设置全局级的系统变量 设置静态的系统变量 设置会话级的系统变量 引用 ...

  6. mysql gtid 主从_基于GTID搭建主从MySQL

    基于gtid搭建主从MySQL 一.GTID的使用 想让主从之间使用gtid的方式同步数据,需要我们在配置文件中开启mysql对gtid相关的配置信息 找到my.cnf ,在mysqld模块中加入如下 ...

  7. mysql proxy 主从_【MYSQL知识必知必会】MySQL主从复制读写分离(基于mysql-proxy实现)...

    MySQL主从复制读写分离(基于mysql-proxy实现) http://mirror.bit.edu.cn/mysql/Downloads/MySQL-Proxy/mysql-proxy-0.8. ...

  8. JVM:如何查看并设置jvm参数+jinfo+查看详细的jvm参数java-XX

    JVM:如何查看jvm设置的参数 查看jvm参数 我们什么都不要管,先来看一下,眼见为实 jps:查看当前java进程id,java本身就是一个进程 [root@hecs-82454 ~]# jps ...

  9. mysql的检查点_转载一篇关于mysql检查点的文章

    数据库运行一段时间后,经常导致服务器大量的swap,我怀疑是innodb中的脏数据太多了,因为没有free space了,mysql通知OS,把一些脏页交换出去,以上只是猜测.有一个现象是每次关数据库 ...

最新文章

  1. 区块链以及区块链技术总结
  2. 配置文件application.properties剥离
  3. PHP快速入门教程:for循环
  4. 【转】Unity中写GLSL(一)—— 简单的diffuse color
  5. php 删除 r n,PHP去除换行符'/r/n'回车换行与PHP_EOL变量的使用
  6. CTF Geek Challenge——第十一届极客大挑战Re Write Up
  7. Ubuntu中设置环境变量PATH
  8. mysql中的表显示“使用中”解决办法!
  9. 计算机网络网络层之IPv6简介
  10. mysql 表单记录主键重新从1开始排序
  11. 使用itext,html转pdf使用报错:java.lang.NoSuchMethodError: com.lowagie.text.pdf.BaseFont.getCharBBox(C)
  12. java红包正态分布,微信红包算法探讨
  13. RTMP协议封装H264格式详解
  14. 通信线路工程验收规范_老杨一建通信学堂通信线路工程施工技术
  15. Codeforces Round #614 (Div. 2)A. ConneR and the A.R.C. Markland-N
  16. 4399 html5游戏平台,h5mini-2.0-sample
  17. Android 11.0 12.0TvSettings系统设置遥控器home键退不出主页面功能的修复
  18. 祝福大家劳动节节日快乐
  19. 4 anbox 树莓派_使用树莓派制作的远程开门器
  20. 20145212罗天晨 后门原理与实践

热门文章

  1. VSCode 小鸡汤 第00期 —— 安装和入门
  2. cmake 常用变量和常用环境变量查表手册
  3. JavaXml教程(六)使用JDOM解析XML文件
  4. 解决linux 系统中Mysql 进程占用CPU 300%故障
  5. 服务器安全狗V4.1增强版 新增修复多项功能
  6. WinJS实用开发技巧(3):仿微博信息流JK快捷键滚动
  7. 在Windows平台下使用安装GCC
  8. 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。...
  9. VGA12h与VGA寄存器
  10. RedisTemplate常用方法总结