腾讯云超高网络性能云主机揭秘

随着机器学习,网络游戏,电商抢购等应用的大规模爆发,公有云用户对虚机网络性能要求迅速提高。腾讯云推出网络优化型实例,实现最高450w PPS的虚机网络转发性能以及多达25Gbps的网络吞吐性能,网络延时大大降低。既可以满足用户高速计算的需求,也让用户能够在虚拟化网络中得到媲美物理机的性能体验。

那么腾讯云网络优化型实例是如何做到这一性能的呢?

▲常见虚拟网络的实现

上图描述了基于KVM的传统虚拟化网络的实现,从图中我们可以看到,云服务器外发数据包需要经过KVM、QEMU、TAP、vSwitch等组件的处理,需要经过多次上下文切换,整个路径很长,与物理服务器相比,这里存在明显的性能瓶颈。主要原因在于在虚拟化环境中,网络边界发生了变化,网卡从真实硬件变成了软件模拟,边界交换设备也从硬件交换机变成了软件vSwitch。这些软件模拟工作绝大部分都在宿主机Linux内核来完成。然而Linux内核协议栈设计的目标不在于高性能报文处理,而是通用灵活。在虚拟化环境下,继续使用内核协议栈作为报文交换中心,性能难免捉襟见肘。

为了解决这个问题,腾讯云引入智能网卡和DPDK两种专用高性能报文处理平台。

DPDK是一种用户态高性能报文处理平台,相对于Linux内核,它通过以下手段来优化报文处理性能:

  • 轮询模式收包,降低中断上下文切换开销。
  • 使用hugepage并且预分配内存,减少tlb miss和缺页中断导致的延迟抖动。
  • 不依赖任何系统调用,消除用户态/内核态切换开销。
  • 通过良好设计,可以实现进程间无锁,总体性能随进程数目线性增长。
  • 使用过程中一般会运行在隔离cpu上,降低进程调度对dpdk的影响。

通过以上技术,dpdk可以实现10倍以上于Linux内核的报文收发性能。

智能网卡是一种新型网卡硬件,相比于普通网卡,它主要智能在以下几个方面:

  • 更出色的SR-IOV性能,可以虚拟出更多的VF分配给虚机使用。
  • 让云服务器可以直接使用高性能物理网卡硬件,无需将数据包绕行到母机网卡。
  • 智能网卡具有各种硬件加速功能,包括数据包硬件解析,校验和offload,流量控制,网络安全加速等。
  • 智能网卡本身是可编程的,可以灵活实现各类vSwitch逻辑,避免了宿主机服务器的资源消耗。

既然DPDK和智能网卡能达到如此高的性能,那为什么之前没有见到在公有云中使用呢?

究其原因,是因为这两个平台开发难度比较大。传统的vSwitch一般在内核实现,依赖各种开源软件以及内核框架,但DPDK及智能网卡仅仅提供了收发包接口,所有高级功能都需要自行实现。如果软件架构设计不好,很可能将内核中影响性能的问题再次引入新平台,而无法充分发挥平台优势。因此针对新平台的vSwitch设计对软件开发人员提出了很大挑战。

为了解决这个问题,腾讯云将vSwitch拆分成快速路径和慢速路径。慢速路径负责连接首包的路由/ACL/安全组等规则执行,快速路径负责连接后续包的快速处理。通过分离式架构设计,腾讯云实现了最高450w PPS的网络转发性能以及多达25Gbps的网络带宽,网络延时大大降低,实现接近物理网卡的网络延时。同时,保持了已有的VPC网络的用户体验的一致性。

这样,传统虚拟化网络的实现方案的瓶颈在网络优化型实例得到完美的解决,在网络收发包性能上、内网带宽、网络时延上都得到了较大的提升。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算D1net

云端虚拟机故障切换遭遇的重重挑战

故障切换到远程站点是一项成熟的技术,云存储也是一项成熟的技术。但是如果用户们在遇到故障后想把虚拟环境切换到云端,他们就面临独特的挑战。 虽然这两个过程都用到复制...

2858
来自专栏余子军的专栏

如何更好的利用CDN资源

随着互联网规模的爆炸式增长,CDN成长为重要的基础设施。如何更好的利用好CDN在全国丰富的资源点为用户提供更好的服务? 这篇文章介绍了CDN在动态内容和全站加速...

8290
来自专栏北京马哥教育

游族网络运维总监:如何运维千台以上游戏云服务器

? 作者:李志勇 来源: http://www.csdn.net/article/2016-03-21/2826611 偶然在网上看到游族网络运维总监李志勇先...

4058
来自专栏腾讯云TStack专栏

腾讯私有云MySQL解决方案—TDSQL

TDSQL是腾讯提供的一套完整的MySQL数据库集群化管理解决方案,作为私有云TStack平台重要的数据库产品能力,旨在解决高可用、高性能、分布式、配套设施等方...

5039
来自专栏SDNLAB

虚拟网络中可视性平面提高性能和安全性

软件定义网络(SDN)和网络功能虚拟化(NFV)可以带来很多好处,但增加网络抽象层是有代价的:对物理层链路的流量的可视性。 同时,越来越快的网络也加剧了这一挑战...

3125
来自专栏木东居士的专栏

DataTalk:迟到的数据该怎样处理?

1943
来自专栏SDNLAB

虚拟化环境中的深度安全防护

一、虚拟化环境面临的安全问题 在企业IT逐步向公有云迁移部分业务,实现企业混合云建设的过程中,如何保证企业云中的数据安全是一个非常重要的考量内容。虽然基于硬件...

3396
来自专栏SDNLAB

为5G构建网络,MPLS需要做哪些改变?

5G具有独特的挑战,不仅能够提供移动电话和超宽带等服务,还能提供具有不同特性的新服务。这些服务包括低延迟机器通信,例如自动驾驶车辆和每平方公里可以看到一百多万个...

1013
来自专栏ImportSource

异地双活实践笔记

最近恰好在搞异地双活,以下是一个梳理: 基本概念 1、异地容灾。这仅仅是一个冷备的概念。也就是在平时正常的时候,另外一个机房只是当做备份。 2、异地双(多)活...

1.4K7
来自专栏云计算D1net

云技术如何改变业务灾难恢复计划?

尽管业务灾难恢复计划转向云计算,但传统灾难恢复(DR)的关键要素,如位置和测试仍然很重要。 在过去几年中,人们已经逐渐放弃了一种被动的业务恢复计划,那就是采用...

2626

扫码关注云+社区