今天在AWS上简单测试了一下跨AZ多活(active-active)的性能影响,记录一下数据。
从结果来看:
- AWS网络性能很好,跨AZ的时延很小,对多活的吞吐量、时延影响很小, 主要开销可能还是磁盘读写。
- 有些数据跨AZ时居然比单AZ还高,可能是我测试的数据规模太小。等有时间再用大规模数据集测一下。
测试环境:
- 5台VM分别在同一个region的3个不同AZ (3 台在us-west2a, 1 台在us-west2b, 1台在us-west2c)。
- VM规格: r5ad.2xlarge (8U64G, 300G SSD, 10G虚机网络), OS: Ubuntu 18.04
首先看看跨AZ通信时延。从三组测试(AZ1-AZ2, AZ1-AZ3, AZ2-AZ3)结果来看,RTT都基本稳定在1ms以内:
为了多活需要跑跨AZ的consensus协议,这里用etcd 最新版v3.4.9做了一个简单测试,用它自带的benchmark工具跑一下。
写入测试用的命令参数:
读取测试用的命令参数:
单AZ3节点集群:
写入性能:
读取性能:
3AZ3节点集群:
写入性能:
读取性能: