作为快速增长的物联网应用主协议的 HTTP,从静态网页内容分发网络(CDN)到 Web 缓存服务器及 HTTP 安全性等的一切,会产生海量的会话,开发人员需要经济高效的方法来处理低带宽通信下的这些会话。

从服务器总体拥有成本来看,在单台服务器上处理数以千万的低带宽会话当然比在一组服务器上处理它们要更经济。 但如何做到这点呢?

答案涉及三个部分。 第一部分是 6WINDGate* 数据包处理软件。 6WIND 公司(英特尔物联网解决方案联盟 Affiliate 级成员)推出的这款软件实现了"快速通道"堆栈,可在标准服务器上提供行业领先 TCP 终止性能

第二部分涉及使用最新英特尔 Xeon® 处理器将 6WINDGate 部署到服务器上。新处理器系列的嵌入式双插槽配置最高支持 24 核,企业级配置最高支持 36 核。较上代而言,新处理器系列在 TPC-H* benchmark @ 1000 GB(图 1)基准测试中提高了 28%,提供最佳双插槽决策支持。 另外,其能效也是业界领先的。

性能图.png

1:TPC-H@ 1000 GB 基准测量综合查询/小时性能指标(QphH@Size),包括并发用户提交查询时的查询吞吐量。测试机为搭载英特尔 Xeon® 处理器 E5-2699 v3的 HP Proliant DL380 Gen 9* 平台。 答案第三部分是使用数据平面开发套件(DPDK),一组开源 BSD 授权软件库,与传统的 Linux 堆栈性能相比,可将英特尔处理器的数据包处理性能提升 25 倍。

下文将详述这三部分。

6WINDGate 加速网络性能

假设服务器每秒可以响应 650 万 HTTP 请求并能维持 10700 万个开放连接, 这种服务器就可以支持海量物联网通信流量。 在最新英特尔 Xeon® 处理器推出之前,6WIND 已在一次演示中在一台 4 插槽 HP DL580 服务器上实现了这种性能。 该服务器搭载英特尔 Xeon® 处理器 E7-4870 v2,拥有 256GB RAM 和 7X40 Gbps 以太网端口,以 2.3 GHz 运行 60 核。

在演示中,6WINDGate 能每秒创建 5 百万 TCP 套接字并提供 242 Gpbs 外传 HTTP 应用吞吐量。 像这样的性能,通过基于单服务器的强大扩展策略可增强数据中心的能力/成本/平方英尺比。

6WINDGate 快速通道 TCP 堆栈可使数据包绕过Linux 网络堆栈,直接在专用核上处理底层数据包(图 2)。上例配置了 28 核在快速通道中运行。

DPDK.PNG

2:6WINDGaTE 数据包处理软件内部工作方式。

利用此快速通道 TCP 堆栈,开发人员可以创建比目前最高性能的应用还要强大 10 到 100 倍的动态应用。 这大部分受益于 6WINDGate TCP 终止模块。 该模块通过终止快速通道而不是 Linux 内核的 TCP 连接来加速网络应用。

6WINDGate 提供了一个可利用多核环境的套接字编程模型,实现会话创建与数据通道完全平行操作。 因此,在应用配置更多处理器内核时,可实现线性性能扩展。 TCP 应用可在 6WINDGate快速通道中创建了一个套接字,接收具体 IP 地址和端口的 TCP 数据包。 并发活跃 TCP 套接字仅受到系统内存的限制。

高性能 HTTP 网络新平台

并非所有人都需要像 6WINGGate 这样在高性能 4 插槽服务器上运行的 HTTP 网络强大性能。 对于大部分应用来说,两插槽的服务器更为适用、性价比也更高。 这种情况下,就需要新的英特尔 Xeon® 处理器 E5-2600v3 产品系列。 像 HP Proliant DL380 这类配备了 48 线程的机器,配备两个上述处理器,就能分出多个内核用于快速通道操作,提供非凡的性能。

搭载这些新处理器的服务器具备很强的刷新参数。 它们基于英特尔 Haswell 微架构,能满足目前以及未来数据中心各种工作负载下的计算、存储和网络需求。其优化特性包括:

  • 与四年前的英特尔 Xeon® 处理器相比,新型英特尔高级矢量扩展 2 指令集 (Intel® AVX2)将性能提升了 6 倍
  • 支持 DDR4 内存技术,功耗降低一半,内存带宽增加 3 倍
  • 与四年前服务器相比,支持虚拟机数增加了三倍,更少的服务器拥有更大的整合能力,能耗更低。
  • 内置智能电源管理功能,提高能效、优化频率。
  • 高级测量和遥测功能可通过虚拟化和数据中心编配,最大程度提高运营效率。

从数据包处理上来看,尤为有趣的是,所有英特尔处理器都会不断保持数据填充内核。 英特尔 Xeon® 处理器 E5-2600 v3 产品系列包括一个大容量 L3 缓存(高达 45MB),同时改进了分支预测并扩大了转换后备缓冲器(TLBs)。 并且还更新了芯片总线,含两个完全缓冲环,这是支持更多内核数所必需的(图 3)。这有点类似于以太网交换器将网络分段。每个缓冲环独立运行,以此来提高有效带宽。相应 QPI 接口频率的提高可带来多槽连贯性能提升,而终极缓存(LLC)的改变则减少了延迟并增加了带宽。

缓存比较.jpg

3:较上代片内互连增强,包括两个独立的完全缓冲环,旨在增加带宽、降低延迟。大量缓存改进进一步提高了性能。 英特尔 Data Directed I/O使得 PCI Express* 设备将处理器终极缓存作为主要目的地,以提高吞吐量并降低延迟。 英特尔 Xeon® 处理器 E5 2600 v3 产品系列支持 12 种方式放置源自I/O设备的数据(由 SKU 决定),以满足高性能数据包处理应用的需要。另外,全新高速缓存监控技术可以让操作系统或虚拟机根据每应用或线程来确定终极缓存的使用,根据相关信息,可做出更准确的调度决定。另外,缓存分配技术能对终极缓存进行分区,以保护关键应用或虚拟机免受邻居干扰。在 Communications Infrastructure Division 路线图 5 SKU 上可使用该功能。

为提供更佳性能,英特尔 Xeon E5 2600v3 产品系列采用了英特尔通讯芯片集 89XX 和英特尔快速辅助技术,提供硬件辅助加速来优化工作负载。 使用英特尔快速辅助技术的应用可卸载服务器对计算密集的安全、压缩和数据包操作的处理,从而提高工作效率。

为了快速移动需要处理的数据包,英特尔集成 I/O 为每两槽服务器提供高达 80 个 PICe* 通道,并且支持 PCIe 3.0 规格,为 P2P 带宽提供原子操作支持。

数据平面开发套件增强版本解决方案的第三部分是 DPDK。该开发套件通过下列性能增强概念,显著降低了标准 Linux 操作系统的开支:
  • 内核亲和度
  • 禁用数据包 I/O 生成的中断
  • 无锁执行
  • 缓存对齐
  • 执行海量页面,降低转换后备缓冲器(TLB)过失
  • 预提取

DPDK 有助于用户空间的网络应用编程,降低了软件开发和维护成本,以及系统单点故障发生的可能性。 DPDK 所有这些关键优点都适用于特定用途以及虚拟化实现。

6WIND 在 6WINDGate 中集成了一个增强版 DPDK。 6WIND 模块提供了一套高级数据层库、优化的多厂商 NIC 驱动、加速加密支持以及商业支持。

HTTP 网络新突破

有兴趣升级其 HTTP 网络解决方案的开发人员会发现 6 WINDGate 能轻易添加到其解决方案堆栈。 6 WINDGate 兼容商业和开源 Linux 发行版,无需对 Linux 内核进行任何更改。 除了像 HP 等公司提供的行业标准服务器之外,联盟许多成员也提供嵌入版英特尔 Xeon® 处理器 E5-2600 v3 产品系列主板。
了解更多
联系推荐的联盟成员:

此博客中的解决方案:

相关主题:

6WIND 为英特尔物联网解决方案联盟的 Affiliate 级成员。

Mark Scantlebury

流动记者(英特尔特约记者),英特尔®物联网解决方案联盟 Embedded Innovator杂志副主编