您好,欢迎光临电子应用网![登录] [免费注册] 返回首页 | | 网站地图 | 反馈 | 收藏
在应用中实践
在实践中成长
  • 应用
  • 专题
  • 产品
  • 新闻
  • 展会
  • 活动
  • 招聘
当前位置:中国电子应用网 > 技术应用 > 正文

凌华科技aTCA-6200服务器刀片完美搭配Intel® DPDK技术 显著提升包转发服务性能

2012年08月09日16:39:27 本网站 我要评论(2)字号:T | T | T
关键字:应用 Intel 计算平台 

 

Jack Lin,平台集成&验证部 经理

Yunxia Guo, 软件系统工程师

Xiang Li, 软件系统工程师 

 

前言 

近年来,随着市场和技术的发展,越来越多的网络基础架构开始向基于通用计算平台或模块化计算平台的架构方向融合,用以支持和提供多样的网络单元和丰富的功能,如应用处理、控制处理、包处理、信号处理等。除了节约成本和缩短产品上市时间之外,在机架式系统和不同尺寸的网络设备上,此架构还可以提供模块化架构的灵活性以及随需而定的系统组件独立升级能力。在传统的网络架构中,交换模块处理In-band和out-of-band系统模块之间的路由交换,处理器模块提供应用层和控制层功能,包处理模块用于数据平面,DSP模块提供定制化的信号层功能。通过使用Intel® DPDK(Intel® Data Plane Development Kit,Intel® 数据平面开发套件),基于Intel® x86架构的处理器模块不仅可以实现传统的处理应用和控制功能,还可以实现智能和高效的包处理。 

 

该白皮书以IP转发作为包处理的一个典型示例,说明了如何将凌华科技aTCA-6200刀片式服务器与Intel® DPDK技术整合为单一平台,提供所需的处理性能,并实现包处理服务性能的提升。首先,我们来比较在没有使用Intel® DPDK做任何优化时,采用原生 Linux(Native Linux) IP转发时aTCA-6200的第三层转发性能。然后,我们再分析采用Intel® DPDK技术之后所获得的IP转发性能提升的原因。较后,我们将介绍凌华科技基于Intel® DPDK技术的自己的开发工具包,该工具包可以协助用户轻松地开发自己的基于Intel® DPDK的应用程序。

 

 凌华科技aTCA-6200 

凌华科技aTCA-6200是一款高集成度的AdvancedTCA处理器刀片,支持2个Intel® Xeon® E5-2648L处理器(Sandy Bridge-EP,32nm),每一个处理器可以较多提供8核20MB的共享缓存。通过使用Intel®超线程技术(Intel® HT技术),每个处理器可以较多支持16个物理线程。除此之外,aTCA-6200还支持8通道的DDR3-1600 VLP RDIMM内存,每个处理器可以支持较大64GB的系统内存。aTCA-6200还包含了丰富的网络I/O接口,包含2个兼容PICMG 3.1 option 1/9的10GbE口(XAUI,10GBase-KX4),以及较多6个10/100/1000BASE-T千兆以太网端口,可分别连接至前面板,AdvancedTCA Base接口通道和后走线千兆以太网口。

 

凌华科技aTCA-6200处理器刀片主要针对运营商级别的安全和电信应用,同样在网络基础设施中也可作为IMS服务器、媒体网关、包检测服务器、流量管理服务器和WLAN接入点控制器等。

 

下图1的功能示意图展示了凌华科技aTCA-6200的详细架构。

 

图1:aTCA-6200功能示意图

 

Intel DPDK 

Intel® DPDK(Intel® Data Plane Development Kit,Intel® 数据平面开发套件)是一个专为Intel®架构处理器提供的轻量级运行环境。它提供了低功耗和Run-to-Completion(RTC,运行到完成)模式,以此较大限度的提升数据包的处理性能。而且Intel® DPDK还包含了优化的和高效的函数库,为用户提供丰富的选择,例如我们熟知的环境抽象层(EAL,Environment Abstraction Layer),它负责初始化和分配低级资源,同时隐藏来自应用和函数库的环境特性,并且获取低级资源,如内存空间,PCI设备,定时器和控制台。

 

环境抽象层(EAL)提供优化的轮询模式驱动(PMD,Poll Mode Driver),内存和缓存管理,定时器,调试和包处理API,其中有些功能也可以由Linux操作系统提供。为使应用层间的相互协作更加便利,环境抽象层(EAL)与标准的GNU C Library(GLIBC)一起,提供集成了更高级别应用的完整API。 

 

下图2为软件层级结构图。

 

 

图 2:在Linux应用环境中的EAL和GLIBC

 

测试拓扑结构 

为了测量aTCA-6200在第三层进行处理和转发IP包的速度,我们使用图3中所示的环境进行测试。

 

图3: IP转发测试环境

 

如图3所示,两片凌华科技aTCA-3400交换刀片,通过使用FASTPATH®网络软件,为安装在凌华科技aTCA-8505机箱中的3片处理器刀片上自带的10GbE Fabric和1GbE Base接口通道提供了无阻碍的互连交换,并支持全网(Full-Mesh)拓扑结构。因此,每个aTCA-3400交换刀片可以提供至少一个Fabric和Base接口,用以连接到每个处理器刀片,例如安装在第5槽的aTCA-6200刀片(被测设备)。 

 

Lxia XM12测试系统,兼容RFC 2544吞吐量基准,通常被用来作为包数据的模拟器,用以发送不同帧大小的IP数据包,并收集较终的统计数据,如每秒帧数和吞吐量。

 

根据上图所示的测试环境拓扑结构,aTCA-6200作为处理器刀片,包含了四个千兆以太网口:两个来自前面板(Flow 1和Flow 2),另外两个是通过aTCA-3400 Base交换实现的Base接口(Flow 3和Flow 4)。除了这4个1GbE的接口之外,aTCA-6200还有2个10GbE的接口通过aTCA-3400交换板连至lxia XM12(Flow 5和Flow 6)。

 

在这个测试配置中,aTCA-6200作为被测设备(DUT),负责接收来自lxia测试系统的IPv4数据包,并在第三层处理这些数据包(例如数据包解封装,IPv4报头校验和验证,路由表查找和数据包封装),然后根据路由表查找结果将数据包返回至lxia XM12。所有的六个流向都是双向的:例如,lxia XM12通过1/2/3/4/5/6接口发送帧数据给aTCA-6200,并分别通过1/2/3/4/5/6接口接收帧数据。

 

 测试方法 

为了评估Intel® DPDK如何在凌华科技aTCA-6200上实现包转发服务的提升,在下面的两个测试案例中我们使用了基于Intel® DPDK的IP包转发应用: 

在Native Linux下的性能 

在这个测试环境中,aTCA-6200安装了64位Ubuntu Server 11.10。同目前Linux其他版本一样,IP转发功能默认是禁用的,需启用IP转发功能,同时使用以下命令禁用ufw服务。

 

# sudo ufw disable

# sysctl net.ipv4.ip_forward

net.ipv4.ip_forward = 0 

 

同上,将net.ipv4.ip_forward设置为0,当前内核配置下的IP转发功能将被禁用。但是通过以下命令可以立即启用: 

# sysctl -w net.ipv4.ip_forward = 1

or

# echo 1 > /proc/sys/net/ipv4/ip_forward  

如果在/etc/sysctl.conf中将net.ipv4.ip_forward设置为1,并重启网络服务,IP转发功能将默认启用,如下所示: 

#echo "net.ipv4.ip_forward = 1">/etc/sysctl.conf

# /etc/init.d/network restart 

 

 

 使用Intel® DPDK后的性能  

 

Intel® DPDK可以在不同的模式下运行,如裸机(Bare Metal),带裸机实时(Bare Metal Run-Time)的Linux和Linux 用户空间(User Space)。在较初的开发阶段,Linux用户空间(User Space)模式是较容易使用的,请参看Intel Data Plane Development Kit - Getting Started Guide for Linux。中的相关描述。下图4描述了Intel® DPDK在Linux用户空间(User Space)模式下的详细功能。  

 

图4:Intel® DPDK 运行在Linux User Space模式下

 

如需在aTCA-6200处理器刀片中建立Intel® DPDK,请在该内核中设置如下参数: 

GLIBC >=2.7 

启用HPET和HPET MMAP配置选项 

# grep HPET /boot/config-`uname -r`

CONFIG_HPET_TIMER=y

CONFIG_HPET_EMULATE_RTC=y

CONFIG_HPET=y

CONFIG_HPET_MMAP=y  

HUGETLBFS enabled: 

# mkdir /mnt/huge

# mount -t hugetlbfs nodev /mnt/huge

# echo 1024 > /sys/kernel/mm/hugepages/hugepages-\ 2048kB/nr_hugepages  

网友评论:已有2条评论 点击查看
登录 (请登录发言,并遵守相关规定)
如果您对新闻频道有任何意见或建议,请到交流平台反馈。【反馈意见】
关于我们 | 联系我们 | 本站动态 | 广告服务 | 欢迎投稿 | 友情链接 | 法律声明
Copyright (c) 2008-2024 01ea.com.All rights reserved.
电子应用网 京ICP备12009123号-2 京公网安备110105003345号