暂无图片
模拟网络延迟造成的io线程延迟,用tc模拟,从库上设置的,没有达到效果
我来答
分享
暂无图片 匿名用户
模拟网络延迟造成的io线程延迟,用tc模拟,从库上设置的,没有达到效果

mysql在测试环境中,‌可以通过引入网络延迟来模拟I/O线程的延迟


tc qdisc add dev ens192  root netem delay 5000ms


这个命令是要主库执行还是从库执行?

我再从库设置的5秒延迟,主库做插入,从库show slave status ,没有看出io thread的延迟呢?

问题出在哪里?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
龙镇君

你提到的命令tc qdisc add dev ens192 root netem delay 5000ms应该在从库上执行。这个命令使用的是traffic control(tc)工具,它在从库的网络接口ens192上添加了一个名为netem的队列纪律,用于模拟5000毫秒(5秒)的网络延迟。

当你在从库上设置了这种延迟后,从库的I/O线程(即负责从主库拉取并应用二进制日志的线程)在拉取和应用主库的更新时,会遇到这个延迟。理论上讲,这将导致从库的复制延迟。

但是,如果你没有在show slave status的结果中看到I/O线程的延迟,可能的原因有以下几点:

  1. 延迟尚未累积:如果I/O线程在你设置延迟之前已经同步了所有数据,那么它可能在等待新的数据,此时延迟设置可能还未发挥作用。

  2. 网络包的延迟应用netem delay是针对网络包的,它可能不会立即影响到MySQL正在处理的当前网络包,只有当新的网络包通过该接口时,才会应用延迟。

  3. MySQL复制机制:MySQL的复制是基于事件的,它可能在完成一个事件的处理后才去拉取新的事件,因此即使有网络延迟,也可能在I/O线程的状态中不立刻体现。

  4. 从库的读取超前:如果从库I/O线程的读取位置已经超前于设置延迟的时间点,那么延迟的效果不会立即体现在show slave status的输出中。

  5. 监控时间点:可能在你观察show slave status时,I/O线程正好没有在进行网络传输,因此没有体现出延迟。

为了观察到延迟的效果,你可以尝试以下步骤:

  • 确保在设置延迟后,主库有新的写操作(如INSERT、UPDATE等)。
  • 等待足够长的时间,让延迟累积,然后观察show slave status的输出,关注Last_IO_ErrnoLast_IO_Error,以及Seconds_Behind_Master字段。
  • 尝试在主库上执行一些操作,然后等待从库的I/O线程去拉取这些更新,观察延迟是否产生效果。

如果以上操作仍无法观察到延迟,可能需要进一步检查网络配置和从库的复制状态,确保复制环境正确配置且网络延迟正确设置。

暂无图片 评论
暂无图片 有用 1
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
关于TDsql数据库的问题
回答 1
是否能满足3年内历史页面快速查询。分区表是将数据分散到不同的物理存储中,查询时只需要查找与查询条件匹配的分区,从而减少查询的数据量,提高查询速度。因此,按月分区表可以满足3年内的历史页面快速查询的需求
mysql创建索引后,没有使用上,explain仍然显示:Using filesort
回答 2
1、假设使用idxmemid索引获取数据,需要遍历idxmemid,再根据主键id回表查询;最终需要扫描两个索引树。2、根据主键访问只需扫描一次全表后,内存排序。1比2需要的io次数多一倍,io和me
goldengate 抽取进程报错
回答 4
你的表结构是不是发生了变化?
mysql5.7升级8.0大家用什么方法?
回答 10
已采纳
1直接升级我选
MySQL 本地连接不上,远程却可以连接,可能是什么原因?
回答 1
看看你的用户是否允许本地连接啊
在MySQL数据库中,对于以下索引类型的描述,哪些是正确的?
回答 2
已采纳
ADBTree索引中包含空值,因此可以实现isnull、isnotnull的查询;HASH索引只可用于或<>操作符的等式比较。由于数据不是按顺序存储的,范围查询时无法应用HASH索引。全文
MySQL三层架构怎么使用MHA?
回答 1
已采纳
设置multitierslave参数,从MHAManager0.52版本开始支持多层架构。在默认情况下,它不支持三层或三层以上的级联复制。
mysql sql 按date time字段倒序输出 limit 1 会是最新的数据吗?
回答 1
已采纳
如果你入库是按照这个为唯一标准的话是的。否则比如你修改了怎么算?回去改这个吗?这个要考虑好就可以了
MySQL新增的数据为什么不会出现在最后,而是排序的方式插入?
回答 2
已采纳
索引组织表。所以必须以主键顺序来插入。
如何在不重启MYSQL情况下,让MYSQL 释放共享内存呢?
回答 4
这个好像没辙,只能重启解决,另外如果你的服务器内存比较小,bufferpool不要设置太大,50%的os内存就可以。