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) | 多隊列** | 彈性網卡(包括一塊主網卡) | |
---|---|---|---|---|---|---|---|
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) | 多隊列** | 彈性網卡(包括一塊主網卡) | |
---|---|---|---|---|---|---|---|
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結果數據優勢比較明顯,接近甚至超越宿主機網卡性能