Tair全球多活实例具备高性能和低延迟的特性,本文介绍不同地域的子实例间同步延迟的测试方法。
产品概述
Tair全球多活实例是阿里云基于云数据库 Tair(兼容 Redis)自研的多活数据库系统,可轻松支持异地多个站点同时对外提供服务的业务场景,助力企业快速复制阿里巴巴异地多活架构。更多信息,请参见全球多活。
测试环境
数据库
测试环境信息 | 说明 |
子实例架构 | 标准架构,不启用集群,详情请参见标准架构。 说明 若是集群架构,当请求的Key分布均匀时,整个集群性能不低于标准架构的 n 倍。 |
子实例规格 | 测试结果受规格影响较小,最低 1 GB 主从版即可完成测试。更多规格请参见内存型(标准架构)。 |
子实例版本 | 通常测试受版本影响较小。 |
测试客户端
测试环境信息 | 说明 |
部署压测工具的设备 | |
地域和可用区 | 与数据库子实例相同的地域与可用区。 |
网络 | 与数据库子实例相同专有网络(VPC),且通过专有网络连接。 |
测试工具
测试工具为 tairgdn-latencytest,该程序通过计算在目标实例上读取到Key时的时间点与Value值的差来得出延迟信息。
Value的值为源实例上数据写入时的时间戳。
测试示例
下述步骤以华北2(北京)的子实例同步数据到华南1(深圳)为例,介绍同步延迟的测试方法,其他地域间子实例采用类似的测试方法。
同步延迟测试环境
登录华南1(深圳)的ECS实例,安装tairgdn-latencytest:
pip install tairgdn-latencytest执行同步测试命令:
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的数量。
登录华北2(北京)的ECS实例,安装tairgdn-latencytest:
pip install tairgdn-latencytest执行同步测试命令:
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中设置的值相同。
等待华南1(深圳)ECS实例上的程序运行完毕,程序将打印出华北2(北京)子实例到华南1(深圳)子实例的同步延迟。
如果网络链路过长(例如跨洲的地域间同步),链路的往返时延RTT(Round-trip time)会成为影响同步延迟的主要因素,通常情况下,受运营商网络和出口路由变化影响,同步延迟约在百毫秒至数秒之间。可通过控制台查看地域间网络时延。