一、背景
某些应用如SAP HANA System Replication(HSR)等,需要两个EC2分别运行在不同AZ,并且要求低于1ms的网络延迟。那么如何在AZ之间测试呢?
实验环境为在新加坡区域ap-southeast-1的三个AZ对应的私有子网,分别创建3个EC2,其EC2配置为:
- 机型:c5.large,配置2vCPU/4GB
- 处理器:Intel® Xeon® Platinum 8275CL CPU @ 3.00GHz
- 网络:up-to 10Gbps
注意不要选择t系列机型,t系列机型为爆发型,其CPU算力、网络吞吐都是弹性机制,适合空闲时间很长、繁忙时间很短的开发、测试环境使用。做性能测试,建议使用c/m/r等用于生产用途的EC2系列机型。
二、测试过程
测试为ping的默认参数,加数量-c=100
的限制,然后看平均值和最大值。以下表格,竖列表示从本机发起,横向表示要访问的可用区。数据0.826/1.266
前一个表示平均值是0.826ms
,最大值是1.266ms
。
1、第一轮测试
测试 | AZ1 | AZ2 | AZ3 |
---|---|---|---|
AZ1 | 我自己 | 0.826/1.266 | 0.590/1.130 |
AZ2 | 0.816/0.850 | 我自己 | 0.671/1.313 |
AZ3 | 0.581/0.604 | 0.664/0.830 | 我自己 |
第一轮测试中,平均值都小于1ms,但是部分AZ之间的最大延迟超过了1ms。
2、第二轮测试
间隔15分钟后发起第二轮测试:
测试 | AZ1 | AZ2 | AZ3 |
---|---|---|---|
AZ1 | 我自己 | 0.821/0.844 | 0.587/0.748 |
AZ2 | 0.816/0.849 | 我自己 | 0.666/0.726 |
AZ3 | 0.582/0.603 | 0.662/0.674 | 我自己 |
第二轮测试中,所有AZ的平均延迟都小于1ms,与第一轮测试在同一个数量级。且这一轮测试,最大延迟都低于1ms,且非常接近平均值。没有遇到最大延迟偶发的超过1ms的情况。
3、第三轮测试
间隔15分钟后发起第三轮测试:
测试 | AZ1 | AZ2 | AZ3 |
---|---|---|---|
AZ1 | 我自己 | 0.823/0.890 | 0.587/0.604 |
AZ2 | 0.817/0.835 | 我自己 | 0.668/0.850 |
AZ3 | 0.581/0.603/ | 0.660/0.681 | 我自己 |
第三轮测试中,所有AZ的平均延迟都小于1ms,与第二轮测试在同一个数量级。且这一轮测试,最大延迟都低于1ms,且非常接近平均值,没有遇到最大延迟偶发的超过1ms的情况。
三、结论
以上测试可以获得结论如下:
- AZ之间的由于地理位置的不同,因此延迟是不相等的;
- 在平均延迟上,从三次测试来看是始终低于1ms的。AZ1和AZ3之间的延迟最小,其次是AZ2和AZ3之间。最差的是AZ1和AZ2之间;
- 在最大延迟上,可看到几次测试稍有浮动,第一次测试遇到最大延迟超过1ms的情况,但是后续测试则没有遇到这种情况。因此可以判断是偶发的抖动。
最后,如果有延迟敏感型应用例如SAP HANA System Replication(HSR)等高可用,可在进行测试后,有针对性的选择实际部署的可用区。以新加坡区域为例,建议首选在AZ1和AZ3之间构建延迟敏感型应用,备选AZ2和AZ3之间。
新加坡Region之外的其他区域,也可以参考本文相同流程进行测试。