我们有一个位于不同数据中心的vanilla master 和slave MySQL 设置,以及与master 位于同一数据中心的另一个slave。
数据中心之间的带宽相当高(在我们所做的网络基准测试中,我们可以达到 15MB/秒),但存在延迟,约为 28 毫秒。无论如何它都不高,但它比同一数据中心的亚秒延迟要高得多。
有时,我们会在删除从站时遇到严重的滞后(2000 秒甚至更多),而本地从站保持最新。在查看滞后的远程slave时,SQL线程通常会花时间等待IO线程更新中继日志。主人同时显示“等待网络”或类似的东西。
所以这意味着它是网络,但在发生这种情况时我们仍然有免费带宽。
我的问题是:数据中心之间的延迟会影响复制的性能吗?从属 io 线程是否只是流式传输事件直到主节点停止发送它们,还是在事件之间以某种方式池主节点?
我有一个普通的 MySQL 复制,使用“混合”模式。
mysql slave 延迟计算的行为非常奇怪 - 一分钟是0
,之后是3630
秒(或类似的数字),然后回到0
,依此类推。显然,复制配置有问题,因为 MySQL 根据中继日志中的时间戳计算延迟。
我试过检查服务器的时间,这是相同的(SELECT NOW()
在 MySQL 中使用)。我还检查了SELECT @@system_time_zone
主从上设置为 CDT的时区 ( )。
我还可以验证什么以确保此问题得到解决?有没有其他人遇到过这个问题?