阿里云容器服务cni网络插件terway非官方网络性能测试

简介: 本文对阿里云容器服务Kubernetes版cni网络插件terway的两种模式(eni,vpc)和宿主机网络通信进行网络性能测试及对比,希望以此得出可行性结论,并为其他选择网络插件的用户提供指导帮助。

作者:荣滨,酷划在线后端架构师,关注微服务治理,容器化技术,Service Mesh等技术领域

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,规格详情如下

测试结果

说明:纵轴表达流量流出方向,横轴表达流量流入方向,所以组合情况一共有9种


名词解释:

  • terway-eni:代表动态创建弹性网卡并绑定POD的terway网络模式
  • terway:代表默认的terway网络模式

结果解读

  • 各种模式下均可将网卡带宽打满,从吞吐量上看结果无明显区别
  • 从流量流入容器角度看数据,流向terway-eni模式在各项指标均接近甚至超过流向宿主机的性能
  • 从流量流出容器角度看数据,terway-eni模式性能接近但略低于宿主机流量流出性能,但明显高于terway默认网络

跨可用区网络性能测试

测试机型选用ecs.sn1ne.8xlarge,规格详情如下

测试结果

说明:纵轴表达流量流出方向,横轴表达流量流入方向,所以组合情况一共有9种

名词解释:

  • terway-eni:代表动态创建弹性网卡并绑定POD的terway网络模式
  • terway:代表默认的terway网络模式

结果解读

  • 由于增加了跨可用区的调用,使影响结果的因素变多
  • host to host的吞吐量,并没有达到网卡的理论最大值,但是流入terway-eni的吞吐量基本达到了机型的带宽6 Gbit/sec,需要进一步调查宿主机间吞吐量上不去的原因
  • 从容器流出的流量角度看,terway-eni模式整体明显高于terway默认网络模式,但低于宿主机网络性能
  • 从流入容器的流量角度看,terway-eni的PPS结果数据优势比较明显,接近甚至超越宿主机网卡性能

总体结论

terway的网络性能测试中表现出了与宣传一致的性能,通过与作者的沟通中了解到,由于将弹性网卡直接放入POD的namespace内,虽然网卡驱动的中断依然由宿主机内核完成,但是网络包不会出现在宿主机namespace的网络栈,减少了宿主机的一层cni网桥转发及复杂路由的性能损失,这也是为什么在某些场景下超过宿主机网络栈性能的表现。

相关实践学习
使用ACS算力快速搭建生成式会话应用
阿里云容器计算服务 ACS(Container Compute Service)以Kubernetes为使用界面,采用Serverless形态提供弹性的算力资源,使您轻松高效运行容器应用。本文将指导您如何通过ACS控制台及ACS集群证书在ACS集群中快速部署并公开一个容器化生成式AI会话应用,并监控应用的运行情况。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
4月前
|
弹性计算 安全 应用服务中间件
阿里云渠道商:怎么配置阿里云网络ACL?
阿里云网络ACL是子网级无状态防火墙,支持精准流量控制、规则热生效且免费使用。本文详解5步配置流程,助您实现Web与数据库层的安全隔离,提升云上网络安全。
|
4月前
|
人工智能 安全 架构师
2025云栖大会 | 阿里云网络技术Session主题资料和视频回放归档
2025年9月24日-26日,杭州,一年一度的云栖大会如期而至;阿里云飞天洛神云网络作为阿里云计算的连接底座,是飞天云操作系统的核心组件,致力于为上云企业提供高可靠、高性能、高弹性、智能的连接服务。本次云栖,云网络产品线也带来全系列产品升级,以及创新技术重磅解读,围绕增强确定性、提效自动化、深耕智能化和敏捷全球化带来技术、产品和服务升级,以及全新的云网络产品生态合作计划发布。
685 2
|
4月前
|
弹性计算 网络安全 数据中心
阿里云创建专有网络VPC的【IPv4网段】如何选择?有什么区别?
阿里云VPC创建时需选IPv4网段,默认提供10.0.0.0/16、172.16.0.0/16、192.168.0.0/16,三者无功能差异。若仅单VPC且不连本地数据中心,可任选其一,确保不冲突即可。多VPC或混合云场景需规划避免IP重叠。不支持100.64.0.0/10等特殊网段。建议结合IPAM进行地址管理。
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
8月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1242 23
|
10月前
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
1625 24
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
951 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
|
10月前
|
SQL 测试技术
除了postman还有什么接口测试工具
最好还是使用国内的接口测试软件,其实国内替换postman的软件有很多,这里我推荐使用yunedit-post这款接口测试工具来代替postman,因为它除了接口测试功能外,在动态参数的支持、后置处理执行sql语句等支持方面做得比较好。而且还有接口分享功能,可以生成接口文档给团队在线浏览。
488 2
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
742 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
11月前
|
存储 JSON API
Python测试淘宝店铺所有商品接口的详细指南
本文详细介绍如何使用Python测试淘宝店铺商品接口,涵盖环境搭建、API接入、签名生成、请求发送、数据解析与存储、异常处理等步骤。通过具体代码示例,帮助开发者轻松获取和分析淘宝店铺商品数据,适用于电商运营、市场分析等场景。遵守法规、注意调用频率限制及数据安全,确保应用的稳定性和合法性。

相关产品

  • 容器计算服务
  • 容器服务Kubernetes版
  • 推荐镜像

    更多