my16_sql_thread执行慢导致主从延迟高的一个情景

摘要:
现象:来自数据库的延迟很高。检查slavestatus,发现sql_Thread执行语句的速度比master数据库慢。这一延迟将继续很长。以下是一些故障排除步骤。1.检查从数据库的配置,磁盘写入速度没有主数据库高。2.iostat-m110查看磁盘写入。从数据库为2M/S,主数据库为3M/S。从属数据库磁盘不如主数据库磁盘高,但此级别的速度不应影响3。设置sync_ Binlog从1设置为0,3,10100,这没有任何影响,innodb_flush_l


现象:从库延迟高,查看slave status发现sql_thread执行语句的速度比主库慢,这样的延迟会一直高下去,下面是排查的一些过程
1. 检查了从库的配置,磁盘的写入速度的确没有主库高
2. iostat -m 1 10查看磁盘写入 ,从库为2M/S,主库也就3M/S,从库磁盘没主库高,但这个档次的速度应该不影响
3. 将sync_binlog从1设置为,0,3,10,100 无效果,innodb_flush_log_at_trx_commit的值为2
4. 增加slave_parallel_workers的值,无效果
5. 然后又排查了内存相关参数,没有明显不合理的地方
6. 最后要从binlog中解析SQL,看看执行的都是哪些SQL,哪些表,在从binlog抽取SQL之前,查看了一下 show full processlist,看到了 System lock

然后就重启了一下slave,这是个作为备份用的从库,业务不访问,当时没有考虑锁的问题,应该再排查一下,有没有其他锁

解决方法为重启一下slave;

>show full processlist;
+---------+-------------+-----------+-------------+---------+---------+---------------------------------------------+--------------------------------------------------------------------------------------------+-----------+---------------+
| Id | User | Host | db | Command | Time | State | Info | Rows_sent | Rows_examined |
+---------+-------------+-----------+-------------+---------+---------+---------------------------------------------+--------------------------------------------------------------------------------------------+-----------+---------------+
| 1 | system user | | NULL | Connect | 2698858 | Waiting for master to send event | NULL | 0 | 0 |
| 2 | system user | | NULL | Connect | 0 | Waiting for dependent transaction to commit | NULL | 0 | 0 |
| 3 | system user | | NULL | Connect | 67873 | System lock | UPDATE......... |


stop slave;
start slave;

>show full processlist;
+---------+-------------+-----------+-------------+---------+-------+---------------------------------------------+-----------------------+-----------+---------------+
| Id | User | Host | db | Command | Time | State | Info | Rows_sent | Rows_examined |
+---------+-------------+-----------+-------------+---------+-------+---------------------------------------------+-----------------------+-----------+---------------+
| 3506710 | root | localhost | ad_dianjing | Query | 0 | starting | show full processlist | 0 | 0 |
| 3508115 | system user | | NULL | Connect | 53 | Waiting for master to send event | NULL | 0 | 0 |
| 3508116 | system user | | NULL | Connect | 0 | Waiting for dependent transaction to commit | NULL | 0 | 0 |
| 3508117 | system user | | NULL | Connect | 56827 | System lock | NULL | 0 | 0 |
| 3508118 | system user | | NULL | Connect | 56828 | Waiting for an event from Coordinator | NULL | 0 | 0 |
| 3508119 | system user | | NULL | Connect | 56828 | Waiting for an event from Coordinator | NULL | 0 | 0 |
| 3508120 | system user | | NULL | Connect | 56977 | Waiting for an event from Coordinator | NULL | 0 | 0 |
| 3508121 | system user | | NULL | Connect | 56981 | Waiting for an event from Coordinator | NULL | 0 | 0 |
| 3508122 | system user | | NULL | Connect | 57852 | Waiting for an event from Coordinator | NULL | 0 | 0 |
| 3508123 | system user | | NULL | Connect | 57852 | Waiting for an event from Coordinator | NULL | 0 | 0 |
| 3508124 | system user | | NULL | Connect | 57852 | Waiting for an event from Coordinator | NULL | 0 | 0 |
| 3508125 | system user | | NULL | Connect | 57852 | Waiting for an event from Coordinator | NULL | 0 | 0 |
| 3508126 | system user | | NULL | Connect | 57852 | Waiting for an event from Coordinator | NULL | 0 | 0 |
| 3508127 | system user | | NULL | Connect | 57852 | Waiting for an event from Coordinator | NULL | 0 | 0 |
| 3508128 | system user | | NULL | Connect | 57852 | Waiting for an event from Coordinator | NULL | 0 | 0 |
| 3508129 | system user | | NULL | Connect | 57852 | Waiting for an event from Coordinator | NULL | 0 | 0 |
| 3508130 | system user | | NULL | Connect | 57852 | Waiting for an event from Coordinator | NULL | 0 | 0 |
| 3508131 | system user | | NULL | Connect | 57852 | Waiting for an event from Coordinator | NULL | 0 | 0 |
| 3508132 | system user | | NULL | Connect | 57852 | Waiting for an event from Coordinator | NULL | 0 | 0 |
+---------+-------------+-----------+-------------+---------+-------+---------------------------------------------+-----------------------+-----------+---------------+
19 rows in set (0.00 sec)

Seconds_Behind_Master: 54622
然后就可以看到Seconds_Behind_Master的数值以每秒100的速度往下降

System lock的产生原因分析可以参考下面这篇文章
http://blog.itpub.net/7728585/viewspace-2149659

免责声明:文章转载自《my16_sql_thread执行慢导致主从延迟高的一个情景》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇npm ERR! mathine_call@1.0.0 dev: `webpack-dev-server --inline --progress --config build/webpack.dev.conf.js` npm ERR! Exit status 1js数组删除(splice和delete)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

WPF LiveChart 图表详解

我不喜欢看文本版。单击我观看视频。本文主要介绍LiveChart中图表的用法。WPF:数据绑定、数据显示样式等。导入LiveChart.WpfNuGet以搜索LiveChart包并安装LiveChart.WPF。引用LiveChart.WPF在使用的接口中,引用LiveChart.WPF的类库xmlns:lvc=“clr-namespace:LiveChar...

索引节点(inode)爆满问题处理

后来,我用df-I检查/data分区的索引节点,发现它已满,这导致系统无法创建新的目录和文件。inode是用于存储这些数据的信息,包括文件大小、所有者、用户组、读写权限等。inode索引每个文件的信息,因此它具有inode的值。根据指令,操作系统可以通过inode值最快找到对应的文件。故障排除的原因是/data/cache目录中有大量小字节缓存文件,这些文件...

高斯键盘设置指南

高斯键盘设置指南如何打开蓝牙模式电源:蓝牙需要电源。高斯GS87-D有两种通电方式:将键盘背面的开关转到on;使用USBType-C电源切换模式:Fn+P用于在有线模式和无线模式之间切换。按下Fn+P,Fn+PP右上角的键盘灯闪烁3次。有线模式和蓝牙模式相互切换。但是,没有指示灯指示当前模式是有线模式还是蓝牙模式如何连接蓝牙代码匹配:长按Fn+P,直到P键快...

jenkins之部署、启动、关闭

jenkins可以通过内置的应用服务器或者借助其他应用服务器启动目录1、启动jenkins2、关闭jenkins3、重启jenkins4、重新加载jenkins配置信息前言:部署jenkins应用,是要安装java的,最新版本的jenkins是需要按照1.8版本的jdk,不然启动不了。...

[笔记]manjaro kde主题&手动安装主题

安装manjaroKDE主题。首先,安装manjaro主题,有两种方法:“系统设置”-“全局主题”-“获取新的全局主题”,您还可以在“外观”中获得“等离子样式、应用程序样式、颜色等”的新全局主题“.通过manjarokdestore下载主题,然后将主题导入系统。但是,由于某些原因,方法1在我的计算机上不可行。加载速度非常慢,下载速度非常慢。据说可以通过pro...

SQL Server 查看版本信息

SQLServer查看版本信息3种方法:1)使用命令行查看[Win+R]键-˃打开cmd2)使用SSMS查看打开并连接SSMS后查看3)通过服务器属性查看使用SSMS打开并连接指定数据库后,查看服务器属性...