terway 网络性能测试
背景
酷划在线成立于 2014 年, 是国内激励广告行业的领军者. 酷划致力于打造一个用户, 广告主, 平台三方共赢的激励广告生态体系, 旗下产品 "酷划锁屏"" 淘新闻 " 分别为锁屏, 资讯行业的领跑者.
伴随着公司服务端架构向微服务演进的过程中, 运维成本提高, 资源利用率低, 等问题日益凸显, 目前公司服务器规模超过 700 + 台 ECS, 服务数量 1000+, 随着容器化技术的成熟, 计划在近期大规模将生产环境迁移到阿里云容器服务平台上, 但由于 VxLan 等主机转发模式的 Overlay 网络均有较大的性能损耗, 所以我们将目光瞄准阿里云容器服务平台开源的 terway 网络插件, 期望使用容器服务达到 ECS 的网络性能, 进而对 terway 网络性能进行详细的评估.
测试说明
本测试基于阿里云容器服务 Kubernetes 版 (1.12.6-aliyun.1),Kubernetes 集群使用阿里云控制台创建, 测试分两部分:
同可用区网络性能测试
跨可用区网络性能测试
本测试的所有网络流量均为跨节点通信 (容器分布在不同的宿主机节点上)
本测试的所有测试均穿插测试超过 3 组取结果平均值
关键指标
吞吐量 (Gbit/sec)
PPS(Packet Per Second)
延时 (ms)
测试方法
吞吐量, PPS 测试使用 iperf3
版本信息如下:
- iperf 3.6 (cJSON 1.5.2)
- Linux iperf3-terway-57b5fd565-bwc28 3.10.0-957.5.1.el7.x86_64 #1 SMP Fri Feb 1 14:54:57 UTC 2019 x86_64
- Optional features available: CPU affinity setting, TCP congestion algorithm setting, sendfile / zerocopy, socket pacing
测试机命令:
- # 启动服务器模式, 暴露在端口 16000, 每 1 秒输出一次统计数据
- iperf3 -s -i 1 -p 16000
陪练机命令:
- # 测试吞吐量
- # 客户端模式, 默认使用 tcp 通信, 目标机为 172.16.13.218, 持续时间 45,-P 参数指定网卡队列数为 4(跟测试的机型有关), 目标端口 16000
- iperf3 -c 172.16.13.218 -t 45 -P 4 -p 16000
- # 测试 PPS
- # 客户端模式, 使用 udp 发包, 包大小为 16 字节, 持续时间 45 秒,-A 指定 CPU 亲和性绑定到第 0 个 CPU
- iperf3 -u -l 16 -b 100m -t 45 -c 172.16.13.218 -i 1 -p 16000 -A 0
- # 测试延迟
- # ping 目标机 30 次
- ping -c 30 172.16.13.218
测试结果
同可用区网络性能测试
机型说明
测试机型选用 ecs.sn1ne.2xlarge, 规格详情如下
实例规格 | vCPU | 内存(GiB) | 网络带宽能力(出 / 入)(Gbit/s) | 网络收发包能力(出 / 入)(万 PPS) | 多队列 < em ztid="190" ow="7" oh="21">* * | 弹性网卡(包括一块主网卡) |
---|---|---|---|---|---|---|
ecs.sn1ne.2xlarge | 8 | 16.0 | 2.0 | 100 | 4 | 4 |
测试结果
说明: 纵轴表达流量流出方向, 横轴表达流量流入方向, 所以组合情况一共有 9 种
吞吐量 | terway-eni | terway | host |
---|---|---|---|
terway-eni | 2.06 Gbits/sec | 2.06 Gbits/sec | 2.07 Gbits/sec |
terway | 2.06 Gbits/sec | 2.06 Gbits/sec | 2.06 Gbits/sec |
host | 2.06 Gbits/sec | 2.07 Gbits/sec | 2.06 Gbits/sec |
PPS | terway-eni | terway | host |
---|---|---|---|
terway-eni | 193K | 170K | 130K |
terway | 127K | 100K | 128.4K |
host | 163K | 130k | 132K |
延时 | terway-eni | terway | host |
---|---|---|---|
terway-eni | 0.205 ms | 0.250 ms | 0.211 ms |
terway | 0.258 ms | 0.287 ms | 0.282 ms |
host | 0.170 ms | 0.219 ms | 0.208 ms |
结果解读
各种模式下均可将网卡带宽打满, 从吞吐量上看结果无明显区别
从流量流入容器角度看数据, 流向 terway-eni 模式在各项指标均接近甚至超过流向宿主机的性能
从流量流出容器角度看数据, 从 terway-eni 模式性能接近但略低于宿主机流量流出性能, 但明显高于 terway 默认网络
跨可用区网络性能测试
测试机型选用 ecs.sn1ne.8xlarge, 规格详情如下
实例规格 | vCPU | 内存(GiB) | 网络带宽能力(出 / 入)(Gbit/s) | 网络收发包能力(出 / 入)(万 PPS) | 多队列 < em ztid="288" ow="7" oh="21">* * | 弹性网卡(包括一块主网卡) |
---|---|---|---|---|---|---|
ecs.sn1ne.8xlarge | 32 | 64.0 | 6.0 | 250 | 是 | 8 |
测试结果
说明: 纵轴表达流量流出方向, 横轴表达流量流入方向, 所以组合情况一共有 9 种
吞吐量 | terway-eni | terway | host |
---|---|---|---|
terway-eni | 5.94 Gbits/sec | 4.21 Gbits/sec | 4.58 Gbits/sec |
terway | 5.94 Gbits/sec | 3.61 Gbits/sec | 3.77 Gbits/sec |
host | 5.92 Gbits/sec | 4.16 Gbits/sec | 3.71 Gbits/sec |
PPS | terway-eni | terway | host |
---|---|---|---|
terway-eni | 154K | 158K | 140K |
terway | 136K | 118K | 136K |
host | 190K | 136K | 172K |
延时 | terway-eni | terway | host |
---|---|---|---|
terway-eni | 0.65 ms | 0.723 ms | 0.858 ms |
terway | 0.886 ms | 0.484 ms | 0.804 ms |
host | 0.825 ms | 0.626 ms | 0.621 ms |
结果解读
由于增加了跨可用区的调用, 使影响结果的因素变多
host to host 的吞吐量, 并没有达到网卡的理论最大值, 但是流入 terway-eni 的吞吐量基本达到了机型的带宽 6 Gbit/sec, 需要进一步调查宿主机间吞吐量上不去的原因
从容器流出的流量角度看, terway-eni 模式整体明显高于 terway 默认网络模式, 但低于宿主机网络性能
从流入容器的流量角度看, terway-eni 的 PPS 结果数据优势比较明显, 接近甚至超越宿主机网卡性能
来源: https://yq.aliyun.com/articles/696639