全球多活同步延迟测试

Tair全球多活实例具备高性能和低延迟的特性,本文介绍不同地域的子实例间同步延迟的测试方法。

产品概述

Tair全球多活实例是阿里云基于云数据库 Tair(兼容 Redis)自研的多活数据库系统,可轻松支持异地多个站点同时对外提供服务的业务场景,助力企业快速复制阿里巴巴异地多活架构。更多信息,请参见全球多活

测试环境

数据库

测试环境信息

说明

子实例架构

标准架构,不启用集群,详情请参见标准架构

说明

若是集群架构,当请求的Key分布均匀时,整个集群性能不低于标准架构的 n 倍。

子实例规格

测试结果受规格影响较小,最低 1 GB 主从版即可完成测试。更多规格请参见内存型(标准架构)

子实例版本

通常测试受版本影响较小。

测试客户端

测试环境信息

说明

部署压测工具的设备

已安装Python 3环境的云服务器ECS实例,详情请参见实例规格族

地域和可用区

与数据库子实例相同的地域与可用区。

网络

与数据库子实例相同专有网络(VPC),且通过专有网络连接。

测试工具

测试工具为 tairgdn-latencytest,该程序通过计算在目标实例上读取到Key时的时间点与Value值的差来得出延迟信息。

说明

Value的值为源实例上数据写入时的时间戳。

测试示例

重要
  • 每次测试时需要先清空数据库,请使用测试实例测试。

  • 通过调整写入侧的连接数和管道深度可以改变写入 QPS,请不要超过写入 QPS 限制,详情参考全球多活

  • 测试前请将ECS实例的IP加入到对应地域子实例的白名单中,详情参考设置IP白名单

下述步骤以华北2(北京)的子实例同步数据到华南1(深圳)为例,介绍同步延迟的测试方法,其他地域间子实例采用类似的测试方法。

同步延迟测试环境

image
  1. 登录华南1(深圳)的ECS实例,安装tairgdn-latencytest:

    pip install tairgdn-latencytest
  2. 执行同步测试命令:

    tairgdn-latencytest read -h {host} -p {port} -u {username} -a password -n {keynumber}
    说明

    该命令会从华南1(深圳)的子实例中,读取由华北2(北京)同步过来的Key信息,然后通过计算读取到Key时的时间点与Value值的差来得出延迟信息。

    参数

    说明

    {host}

    子实例的私网连接地址。获取方式,请参见查看连接地址

    {port}

    华南1(深圳)子实例的端口,默认为6379。

    {password}

    华南1(深圳)子实例的密码。

    说明

    如果使用新创建的账号,密码格式需为<user>:<password>。例如,账号名为admin,密码为Rp829dlwa,则连接Redis时的密码为admin:Rp829dlwa

    {keynumber}

    需读取的Key的数量。

  3. 登录华北2(北京)的ECS实例,安装tairgdn-latencytest:

    pip install tairgdn-latencytest
  4. 执行同步测试命令:

    tairgdn-latencytest write -h {host} -p {port} -u {username} -a password -n {keynumber} -P 16 -c 16
    说明

    该程序会连续地向华北2(北京)的子实例创建Key并写入数据,以递增的整数作为Key的名称,以该数据写入时的时间戳作为Key的值(Value)。

    参数

    说明

    {host}

    华北2(北京)子实例的私网连接地址。获取方式,请参见查看连接地址

    {port}

    华北2(北京)子实例的端口,默认为6379。

    {password}

    华北2(北京)子实例的密码。

    说明

    如果使用新创建的账号,密码格式需为<user>:<password>。例如,账号名为admin,密码为Rp829dlwa,则连接Redis时的密码为admin:Rp829dlwa

    {keynumber}

    需写入的Key的数量,必须与步骤1中设置的值相同。

  5. 等待华南1(深圳)ECS实例上的程序运行完毕,程序将打印出华北2(北京)子实例到华南1(深圳)子实例的同步延迟。

说明

如果网络链路过长(例如跨洲的地域间同步),链路的往返时延RTT(Round-trip time)会成为影响同步延迟的主要因素,通常情况下,受运营商网络和出口路由变化影响,同步延迟约在百毫秒至数秒之间。可通过控制台查看地域间网络时延。