数据同步需要从源端同步到目的端,可能需要经过提取、转换、入库等多个环境, 而且往往是跨数据中心的, 数据中心之间可能需要专线保障数据同步的效率。在很多场景下,业务要求同步是秒级别的,当出现延迟过大时, 除了同步工具本身的性能问题外, 外部依赖数据库服务、网络等也是影响同步性能等关键。总结如下:
1. 数据库连接参数
同步工具需要分别获取源端数据库和目的端数据库的连接读取和写入数据, 数据库实例作为数据库连接的服务端,连接参数的设置会影响数据读取和入库性能。
2. 数据库慢查询排查
同步工具是数据库应用的其中一个客户端,数据库本身还有业务和其他客户端的读取和写入操作,也会影响同步的性能。当偶发性的延迟问题出现时, 数据库实例的读写性能和慢查询是延迟问题排查的方向之一。
3. 网络的影响
网络作为数据在跨中心间传输的通道,对数据同步效率其中至关重要的作用, 但是在实际运维过程中,由于网络是无形的, 没有监控手段往往会被容易忽视。网络可以通过两个简单的手段进行排查。
3.1. 通过ping检测网络延迟
通过ping目的端ip, 可以对网络延迟,丢包率等进行一个测试。 一个较好的网路环境, 应该保证跨中心间网络延迟在数数十ms以内,丢包率为0%
3.2. 大文件传输测试
通过了ping工具测试后, 可以进一步使用大文件传输的方法测试点到点之间的网络传输速度,具体可以按照这个方法进行测试
1)dd if=/dev/zero of=<测试文件名> bs=块大小 count=块数
2)scp 测试文件 目的服务器目录地址
在测试时, 传输文件应该设置大文件,建议可以是1G的文件大小,避免小文件无法达到测试目的。通过观察大文件的传输速度,可以确定网络的传输速度和传输稳定性。