CN107483237A - 基于dpdk转发的性能优化系统及方法 - Google Patents
基于dpdk转发的性能优化系统及方法 Download PDFInfo
- Publication number
- CN107483237A CN107483237A CN201710651207.9A CN201710651207A CN107483237A CN 107483237 A CN107483237 A CN 107483237A CN 201710651207 A CN201710651207 A CN 201710651207A CN 107483237 A CN107483237 A CN 107483237A
- Authority
- CN
- China
- Prior art keywords
- dpdk
- module
- network interface
- performance optimization
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
- H04L41/083—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for increasing network speed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供了一种基于DPDK转发的性能优化系统,包括:DPDK交换机,该DPDK交换机上联通讯网络,下联下层交换机或者路由器,所述DPDK交换机通过其下联的下层交换机或路由器实现用户的有线或无线接入,读取到用户发出的数据包,通过其内部的DPDK模块进行处理,再转发至发送的网卡模块上。本公开通过硬件、软件综合进行性能优化,提高系统吞吐量,以进一步提高当前的网关转发性能,降低流量高峰时期网络堵塞的问题。
Description
技术领域
本公开涉及通信网络技术领域,尤其涉及一种基于数据平面开发套件(DataPlane Development Kit,简称DPDK)转发的网络性能优化系统及方法。
背景技术
近年来,日益增长的用户数量,日渐复杂的业务,急剧膨胀的数据,使得在流量高峰的时候,服务的可用性下降。面对这些挑战,性能优化需在保持系统响应时间的前提下,不断提高系统吞吐量,提升流量高峰时候的服务的可用性。但是,在某些情况下,降低响应时间、提高系统吞吐量和提高服务可用性三者相互矛盾,不可兼得。例如:增加缓存可以降低平均响应时间,但是处理线程数量会因为缓存过大而有所限制,从而降低系统吞吐量;为了提高服务可用性,对异常请求重复调用是一个常用的做法,但是这会提高响应时间并降低系统吞吐量。
通常性能优化使用水平分割模式、垂直分割模式、恒变分离模式、数据局部性模式等,水平分割模式即将整个请求流程切分为必须相互依赖的多个Stage,然后水平分割模式串行处理多个Stage,但是在Stage内部并行处理;垂直分割模式主要包括两种分割模式:部署垂直分割和代码垂直分割。部署垂直分割主要是按照可用性要求将系统进行等价分类,不同可用性业务部署在不同机器上,高可用业务单独部署;代码垂直分割就是让不同业务系统不共享代码,彻底解决系统资源使用冲突问题;恒变分离模式即将变化的数据和不变的数据分开;数据局部性模式要求数据由尽可能少的服务器来提供,并且经常被一起使用的数据尽可能放在同一台服务器上。
上述模式都在一定程度上改善了性能,提高了系统处理速度,从而优化了系统的响应时间,同时也提高了服务器的可用性。但是性能优化不是无止境的,而且上述的模式都是在系统基础上进行的优化,例如,Linux系统的一般服务器的速度可以达到千兆、万兆级别。有数据显示,包转发能力的天花板就是理论物理线路上能够传送的最大速率,即线速。线速是线缆中流过的帧理论上支持的最大帧数。而当性能优化到一定程度后,包转发能力极大的约束了性能的进一步提高,是性能优化的一个瓶颈。因此,想进一步提高服务器的性能,不能局限于系统基础上的优化。
DPDK的出现充分的释放了IA平台对包处理的吞吐能力,很好的将IA上包处理的性能提高到一个新高度。但是DPDK如果使用不合理,可能甚至降低数据包的处理能力。因此,针对实际情况如何更加合理规范的使用DPDK是需要研究的一个问题。
公开内容
(一)要解决的技术问题
本公开提供了一种基于DPDK转发的网络性能优化系统及方法,以至少部分解决以上所提出的技术问题。
(二)技术方案
根据本公开的一个方面,提供了一种基于DPDK转发的性能优化系统,包括:DPDK交换机,该DPDK交换机上连通讯网络,下连下层交换机或者路由器,所述DPDK交换机通过其下连的下层交换机或路由器实现用户的有线或无线接入,读取用户发出的数据包,通过其内部的DPDK模块进行处理,再转发至网卡模块发送。
在本公开一些实施例中,所述DPDK模块包括:环境搭建模块,用于搭建DPDK环境,包括:DPDK编译模块,用于编译DPDK运行环境;大页配置模块,用于实现大页内存配置;及驱动加载模块,用于加载DPDK驱动。
在本公开一些实施例中,环境搭建模块还包括:内核绑定模块,用于将线程与CPU绑定;NUMA设置模块,用于提供分离的存储器给多个处理器。
在本公开一些实施例中,所述DPDK模块还包括程序优化模块,包括:CPU隔离模块,用于将程序运行在固定的cpu核上,同时将该核隔离出去,避免被操作系统调度给其他进程使用;网卡多队列开启模块,用于启用网卡多队列功能,以及I/O输出模块。
在本公开一些实施例中,程序优化模块还包括:node配置模块,设置程序运行时使用的cpu、内存和网卡模块在同一个socket中。
在本公开一些实施例中,所述网卡模块包括Intel Xeon系列网卡。
在本公开一些实施例中,所述网卡模块配置多网卡,并采用多核及多队列网卡配置,所述多核网卡核数至少四核。
在本公开一些实施例中,所述网卡模块每个内存通道至少一个内存条DIMM,内存大小最少为4GB。
根据本发明的另一个方面,提供了一种基于DPDK转发的性能优化方法,包括以下步骤:
设置用户终端采用Intel Xeon系列的网卡,并采用多网卡,多核及多队列的配置;
搭建DPDK环境,进行DPDK库的编译,大页配置并加载驱动;
实现程序的优化,进行CPU隔离,启用网卡多队列,减少I/O输出。
在本公开一些实施例中,所述搭建DPDK环境进一步包括以下步骤:
在Ubuntu系统环境下采用DPDK-16.07.2-stable进行DPDK文件编译;
编译完DPDK文件之后,设置default_hugepagesz=1G,hugepagesz=1G,hugepages=1,预留出1G的内存空间给大页使用,操作系统启动后使用命令mount-thugetlbfs nodev/mnt/huge使用大页;
使用命令insmod igb_uio.ko加载igb_uio驱动,所述驱动借助UIO技术在初始化过程中将网卡硬件寄存器映射到用户态;以及
进行内核绑定及NUMA设置;
所述程序的优化进一步包括以下步骤:
启用网卡多队列实现每个应用程序一个队列,应用程序根据需求来对数据包进行控制;
在程序运行的过程中减少printf的使用;以及
进行node配置。
(三)有益效果
从上述技术方案可以看出,本公开基于DPDK转发的性能优化系统及方法至少具有以下有益效果其中之一:
(1)由于发出的数据包发送到DPDK交换机,交换机上部署的DPDK模块直接从网卡读取到数据包并通过DPDK模块处理并转发至发送的网卡模块上,该过程绕过了内核协议栈直接与硬件进行交互,并使用轮询代替中断,当流量数据比较大的时候,转发性能明显提高,可应用于注册用户两万,在线用户六千的学校,改善了流量高峰时期的服务可用性;
(2)通过硬件、软件综合进行性能优化,提高系统吞吐量,硬件系统采用IntelXeon系列的网卡,并采用多网卡,多核,多队列,针对学校的实际接入数确定至少四核的网卡,提高数据的并行处理;采用多队列实现了一个应用程序使用特定的队列进行操作,提高了数据处理性能;
(3)由于采用了大页内存技术,提升了TLB命中率;并且通过将线程与CPU绑定,提高了CPU Cache的命中率;
(4)通过隔离CPU避免核被其他程序调用导致降低程序的性能;同时启用网卡多队列功能,提高了数据处理性能,并且通过降低I/O输出的次数从而提高程序性能。
附图说明
图1为本公开实施例基于DPDK转发的网络系统结构示意图。
图2为本公开实施例基于DPDK转发的网络系统软硬件结构框图。
图3为本公开实施例基于DPDK转发性能优化方法的流程图。
具体实施方式
本公开提供了一种基于DPDK转发的性能优化系统及方法,该方法针对于注册用户两万,在线用户六千的学校用户,通过硬件、软件综合进行性能优化,提高系统吞吐量,以进一步提高当前的网关转发性能,降低流量高峰时期网络堵塞的问题。
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
本公开某些实施例于后方将参照所附附图做更全面性地描述,其中一些但并非全部的实施例将被示出。实际上,本公开的各种实施例可以许多不同形式实现,而不应被解释为限于此数所阐述的实施例;相对地,提供这些实施例使得本公开满足适用的法律要求。
在本公开的第一个示例性实施例中,提供了一种基于DPDK转发的性能优化系统。图1为本公开第一实施例基于DPDK转发的网络系统结构示意图。如图1所示,基于DPDK的交换机上连通讯网络,下连其他交换机或者路由器等其他设备,用户可以有线接入或者无线接入。当用户通过有线接入后,发出的数据包发送到DPDK交换机,交换机上部署的DPDK模块直接从网卡读取到数据包,并通过DPDK模块处理并转发至网卡模块发送。该过程绕过了内核协议栈直接与硬件进行交互,并使用轮询代替中断,当流量数据比较大的时候,转发性能更加明显。
图2为本公开实施例基于DPDK转发的网络系统软硬件结构框图。以下结合图2分别对本实施例基于DPDK转发的网络系统的各个组成部分进行详细描述。如图2所示,本公开提出的基于DPDK转发性能优化系统中,DPDK交换机包括:
网卡模块,所述网卡模块的配置要求包括:1)主网卡模块,针对学校用户,选用网卡类型为英特尔的Xeon系列,比如vy Bridge,Haswell或更新的产品作为主网卡;2)其他多网卡模块,网卡至少有两个网卡,按照学校接入确定;3)网卡多核配置;4)网卡多队列配置。
由于DPDK对网卡类型有要求,所以网络系统需要使用指定的网卡类型。本公开针对注册用户两万,在线用户六千的学校用户,选用网卡类型为英特尔的Xeon系列。网卡数目针对学校的实际接入数确定,核数至少四核,提高数据的并行处理;并且采用多队列,实现了一个应用程序使用特定的队列进行操作,提高了数据处理性能;同时保证每个内存通道至少一个内存条DIMM,内存大小最少为4GB,可使用dmidecode-t memory|grep Locator查看。
所述DPDK交换机基于DPDK模块进行处理及转发操作,所述DPDK模块包括:环境搭建模块和程序优化模块,其中:
所述环境搭建模块,用于搭建DPDK环境,包括:DPDK编译模块,用于编译DPDK运行环境;大页配置模块,用于实现大页内存配置;及驱动加载模块,用于加载DPDK驱动。
DPDK环境搭建时,大页配置可以提升TLB命中率。由于页表中保存着内存单元进行地址转换的信息,而页表查找是一种极其耗时的操作。TLB缓存着查找结果,保存着虚拟地址到物理地址的映射关系。当需要查找的数据超出TLB的存储极限时,就会发生TLB miss,操作系统就会去查找内存中的页表,若该操作发生频繁,程序的性能就会下降的很快。DPDK使用了大页内存技术,提升TLB命中率。如果DPDK模块运行的服务器上内存不够丰富(建议不低于2G),最好在系统boot时就预留出足够的空间够DPDK使用大页。如在grub中使用命令:default_hugepagesz=1G hugepagesz=1G hugepages=1就是预留出1G的内存空间给大页使用。操作系统启动后使用命令mount-t hugetlbfs nodev/mnt/huge使用大页。
优选地,所述环境搭建模块还包括内核绑定模块,用于将线程与CPU绑定。当数据流很大的时候,线程可能会被内核调度到其他物理核上,从而Cache的命中率会降低。提高外设以及程序工作效率的最直观的方法就是让各个物理核各自负责专门的事情,使得线程可以不再处理器之间频繁迁移,省却了来回反复调度的性能消耗,从而产生的负载越小。因此,将线程与CPU绑定,提高了CPU Cache的命中率,线程之间可以互不干扰地工作,提高程序的速度。
优选地,所述环境搭建模块还包括内核NUMA设置模块,用于提供分离的存储器给多个处理器。在NUMA体系架构中,CPU访问本地内存要比访问远端内存更快,因为CPU访问远端内存需要跨越QPI总线,所以在告诉处理报文中,若该情况发生频繁,会严重影响系统的性能。在DPDK中,通过在NUMA节点上创造ring,rte_malloc和mempool等其他API,可以避免远端访问这类问题。
所述程序优化模块包括:CPU隔离模块,用于将程序运行在固定的cpu核上,同时将该核隔离出去,避免被操作系统调度给其他进程使用;网卡多队列开启模块,用于启用网卡多队列功能,以及I/O输出模块。
在程序优化中,为了避免核被其他程序调用降低程序的性能,需要隔离CPU。DPDK的网卡驱动默认是轮询,也就是死循环,当程序运行时,也可能会有其他程序运行,这样使得内核处理多个程序,导致性能的降低。为了满足更高的数据流转发性能,需将程序运行在固定的cpu核上,同时将该核隔离出去,避免被操作系统调度给其他进程使用。如在grub配置命令isolcpus=2,3就是隔离出cpu2和3。
在程序优化中同时启用网卡多队列功能,可以提高数据处理性能。网卡多队列技术是一个硬件手段,需要结合软件将它很好地利用起来从而达到设计的需求。利用该技术,可以做到分而治之,比如每个应用一个队列,应用程序就可以根据自己的需求来对数据包进行控制。针对该学校用户,应使用多队列的网卡并开启多队列功能。
再者,运行过程中应当尽量避免I/O的输出,因此应当降低I/O输出的次数。当I/O输出较多时,比如printf的使用,性能会严重下降,实验结果显示,当程序中printf调用次数过多时,性能会大大降低,因此,在尽可能提高程序性能的时候,应当尽量避免I/O输出。
优选地,所述程序优化模块还包括node配置模块。node配置为避免本端cpu访问远端内存或者网卡,要求程序运行时使用的cpu、内存和网卡最好在同一个socket中。由于目前大多数服务器支持多node技术,把cpu、内存和PCI插槽为单元进行分组,因此,程序运行时使用的cpu、内存和网卡在同一个socket中时性能最好,避免了本端cpu访问远端内存或者网卡。
至此,本公开第一实施例基于DPDK转发的网络系统介绍完毕。
在本公开的第二个示例性实施例中,提供了一种基于DPDK转发的性能优化方法,步骤如下:
步骤A,针对注册用户两万,在线用户六千的学校用户,选用Intel Xeon系列的网卡,并要求多网卡,多核,多队列。网卡数目针对学校的实际接入数确定,核数至少四核。
步骤B,DPDK环境的搭建,包括DPDK库的编译,大页配置以及驱动的加载。
所述步骤B中,DPDK环境搭建进一步包括以下步骤:
B1,首先进行DPDK文件编译,使用的是DPDK-16.07.2-stable稳定版版本,系统环境为Ubuntu;
B2,编译完DPDK文件之后,default_hugepagesz=1G hugepagesz=1G hugepages=1就是预留出1G的内存空间给大页使用。操作系统启动后使用命令mount-t hugetlbfsnodev/mnt/huge使用大页,提升TLB命中率。
B3,加载igb_uio驱动使用命令insmod igb_uio.ko,该驱动借助了UIO技术,在初始化过程中将网卡硬件寄存器映射到用户态。
优选地,所述步骤B中DPDK环境搭建还包括内核绑定及NUMA设置的步骤。
步骤C,程序的优化,包括CPU隔离,网卡多队列启用,减少I/O输出。
所述步骤C中,程序优化进一步包括以下步骤:
C1,在程序优化中,通过CPU隔离,避免核被其他程序调用从而降低程序的性能;
C2,同时,实现每个应用一个队列,应用程序就可以根据自己的需求来对数据包进行控制,从而提高程序的数据处理性能;
C3,在程序运行的过程中,当I/O输出频繁时,程序性能会大大降低,因此,在优化程序的过程中应当尽量避免I/O的输出,比如减少printf的使用。
优选地,所述步骤C中程序优化还包括node配置的步骤。
为了达到简要说明的目的,上述实施例1中任何可作相同应用的技术特征叙述皆并于此,无需再重复相同叙述。
以下由性能对比测试来说明本实施例网络系统的性能。表1结果为正常的物理机转发性能。表2结果为基于DPDK的物理机转发性能。测试使用的物理机为四核,6个Intel82599/82574芯片,网卡单队列。测试时数据包从一个网卡进,另一个网卡出。可以看出,在小包转发性能上提高的尤为明显,而且,当包帧长为512的时候,基于DPDK的转发性能就已经达到了线速。
表1
表2
至此,本公开第二实施例基于DPDK转发的性能优化方法介绍完毕。
至此,已经结合附图对本公开实施例进行了详细描述。需要说明的是,在附图或说明书正文中,未绘示或描述的实现方式,均为所属技术领域中普通技术人员所知的形式,并未进行详细说明。此外,上述对各元件和方法的定义并不仅限于实施例中提到的各种具体结构、形状或方式,本领域普通技术人员可对其进行简单地更改或替换。
再者,单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。
此外,除非特别描述或必须依序发生的步骤,上述步骤的顺序并无限制于以上所列,且可根据所需设计而变化或重新安排。并且上述实施例可基于设计及可靠度的考虑,彼此混合搭配使用或与其他实施例混合搭配使用,即不同实施例中的技术特征可以自由组合形成更多的实施例。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其他设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本公开也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本公开的内容,并且上面对特定语言所做的描述是为了披露本公开的最佳实施方式。
本公开可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。本公开的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本公开实施例的相关设备中的一些或者全部部件的一些或者全部功能。本公开还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本公开的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。并且,在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。
类似地,应当理解,为了精简本公开并帮助理解各个公开方面中的一个或多个,在上面对本公开的示例性实施例的描述中,本公开的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本公开要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,公开方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本公开的单独实施例。
以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (10)
1.一种基于DPDK转发的性能优化系统,包括:
DPDK交换机,该DPDK交换机上连通讯网络,下连下层交换机或者路由器,所述DPDK交换机通过其下连的下层交换机或路由器实现用户的有线或无线接入,读取用户发出的数据包,通过其内部的DPDK模块进行处理,再转发至网卡模块发送。
2.根据权利要求1所述的性能优化系统,其中,所述DPDK模块包括:
环境搭建模块,用于搭建DPDK环境,包括:
DPDK编译模块,用于编译DPDK运行环境;
大页配置模块,用于实现大页内存配置;及
驱动加载模块,用于加载DPDK驱动。
3.根据权利要求2所述的性能优化系统,其中,环境搭建模块还包括:
内核绑定模块,用于将线程与CPU绑定;
NUMA设置模块,用于提供分离的存储器给多个处理器。
4.根据权利要求3所述的性能优化系统,其中,所述DPDK模块还包括程序优化模块,包括:
CPU隔离模块,用于将程序运行在固定的cpu核上,同时将该核隔离出去,避免被操作系统调度给其他进程使用;
网卡多队列开启模块,用于启用网卡多队列功能,以及
I/O输出模块。
5.根据权利要求4所述的性能优化系统,其中,程序优化模块还包括:
node配置模块,设置程序运行时使用的cpu、内存和网卡模块在同一个socket中。
6.根据权利要求1所述的性能优化系统,其中,所述网卡模块包括Intel Xeon系列网卡。
7.根据权利要求6所述的性能优化系统,其中,所述网卡模块配置多网卡,并采用多核及多队列网卡配置,所述多核网卡核数为至少四核。
8.根据权利要求7所述的性能优化系统,其中,所述网卡模块每个内存通道至少一个内存条DIMM,内存大小最少为4GB。
9.一种基于DPDK转发的性能优化方法,采用如权利要求1-8任一项中所述的基于DPDK转发的性能优化系统,包括以下步骤:
设置用户终端采用Intel Xeon系列的网卡,并采用多网卡,多核及多队列的配置;
搭建DPDK环境,进行DPDK库的编译,大页配置并加载驱动;
实现程序的优化,进行CPU隔离,启用网卡多队列,减少I/O输出。
10.根据权利要求1所述的性能优化方法,其中,
所述搭建DPDK环境进一步包括以下步骤:
在Ubuntu系统环境下采用DPDK-16.07.2-stable进行DPDK文件编译;
编译完DPDK文件之后,设置default_hugepagesz=1G,hugepagesz=1G,hugepages=1,预留出1G的内存空间给大页使用,操作系统启动后使用命令mount-t hugetlbfs nodev/mnt/huge使用大页;
使用命令insmod igb_uio.ko加载igb_uio驱动,所述驱动借助UIO技术在初始化过程中将网卡硬件寄存器映射到用户态;以及
进行内核绑定及NUMA设置;
所述程序的优化进一步包括以下步骤:
启用网卡多队列实现每个应用程序一个队列,应用程序根据需求来对数据包进行控制;
在程序运行的过程中减少printf的使用;以及
进行node配置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710651207.9A CN107483237A (zh) | 2017-08-02 | 2017-08-02 | 基于dpdk转发的性能优化系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710651207.9A CN107483237A (zh) | 2017-08-02 | 2017-08-02 | 基于dpdk转发的性能优化系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107483237A true CN107483237A (zh) | 2017-12-15 |
Family
ID=60597498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710651207.9A Pending CN107483237A (zh) | 2017-08-02 | 2017-08-02 | 基于dpdk转发的性能优化系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107483237A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108600120A (zh) * | 2018-05-04 | 2018-09-28 | 广东唯网络科技有限公司 | 一种基于dpdk下实现nat的方法 |
CN109756389A (zh) * | 2018-11-28 | 2019-05-14 | 南京知常容信息技术有限公司 | 一种万兆网络隐蔽通信检测系统 |
CN110022330A (zh) * | 2018-01-09 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 用于网络数据包的处理方法、装置及电子设备 |
WO2019144777A1 (zh) * | 2018-01-24 | 2019-08-01 | 北京金山云网络技术有限公司 | 报文转发方法、转发装置、服务器及存储介质 |
CN110324197A (zh) * | 2018-03-30 | 2019-10-11 | 北京京东尚科信息技术有限公司 | 网络性能测试的方法和装置 |
CN110333899A (zh) * | 2019-06-27 | 2019-10-15 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置和存储介质 |
CN111107053A (zh) * | 2019-11-15 | 2020-05-05 | 北京宇航系统工程研究所 | 一种基于龙芯dpdk的防火墙自动探测绑定网口的方法及系统 |
CN111970249A (zh) * | 2020-07-22 | 2020-11-20 | 山西大学 | 一种基于DPDK的Modbus协议实现方法和装置 |
WO2021077748A1 (zh) * | 2019-10-23 | 2021-04-29 | 江苏省未来网络创新研究院 | 一种基于dpdk实现流量分析业务性能线性增长的方法 |
WO2021203531A1 (zh) * | 2020-04-07 | 2021-10-14 | 中国科学院自动化研究所 | 用于高速数据采集系统的以太网数据流记录方法 |
CN115242895A (zh) * | 2022-07-19 | 2022-10-25 | 杭州迪普科技股份有限公司 | 基于dpdk的访问本机方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202957840U (zh) * | 2012-10-25 | 2013-05-29 | 深圳市高德信通信有限公司 | 一种跨网加速系统 |
CN105357151A (zh) * | 2015-11-19 | 2016-02-24 | 成都科来软件有限公司 | 一种基于dpdk的抓包及镜像流量转发方法 |
CN105577567A (zh) * | 2016-01-29 | 2016-05-11 | 国家电网公司 | 基于Intel DPDK的网络数据包并行处理方法 |
US20160188474A1 (en) * | 2014-12-26 | 2016-06-30 | Intel Corporation | Hardware/software co-optimization to improve performance and energy for inter-vm communication for nfvs and other producer-consumer workloads |
-
2017
- 2017-08-02 CN CN201710651207.9A patent/CN107483237A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202957840U (zh) * | 2012-10-25 | 2013-05-29 | 深圳市高德信通信有限公司 | 一种跨网加速系统 |
US20160188474A1 (en) * | 2014-12-26 | 2016-06-30 | Intel Corporation | Hardware/software co-optimization to improve performance and energy for inter-vm communication for nfvs and other producer-consumer workloads |
CN105357151A (zh) * | 2015-11-19 | 2016-02-24 | 成都科来软件有限公司 | 一种基于dpdk的抓包及镜像流量转发方法 |
CN105577567A (zh) * | 2016-01-29 | 2016-05-11 | 国家电网公司 | 基于Intel DPDK的网络数据包并行处理方法 |
Non-Patent Citations (3)
Title |
---|
中国电信股份有限公司广州研究院: "《DPDK技术白皮书 V1.0》", 31 October 2015 * |
令瑞林 等: ""基于多核平台的高速网络流量实时捕获方法"", 《计算机研究与发展》 * |
朱河清 等: "《深入浅出DPDK》", 31 May 2016 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110022330A (zh) * | 2018-01-09 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 用于网络数据包的处理方法、装置及电子设备 |
CN110022330B (zh) * | 2018-01-09 | 2022-01-21 | 阿里巴巴集团控股有限公司 | 用于网络数据包的处理方法、装置及电子设备 |
WO2019144777A1 (zh) * | 2018-01-24 | 2019-08-01 | 北京金山云网络技术有限公司 | 报文转发方法、转发装置、服务器及存储介质 |
CN110324197A (zh) * | 2018-03-30 | 2019-10-11 | 北京京东尚科信息技术有限公司 | 网络性能测试的方法和装置 |
CN108600120A (zh) * | 2018-05-04 | 2018-09-28 | 广东唯网络科技有限公司 | 一种基于dpdk下实现nat的方法 |
CN109756389A (zh) * | 2018-11-28 | 2019-05-14 | 南京知常容信息技术有限公司 | 一种万兆网络隐蔽通信检测系统 |
CN110333899A (zh) * | 2019-06-27 | 2019-10-15 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置和存储介质 |
WO2021077748A1 (zh) * | 2019-10-23 | 2021-04-29 | 江苏省未来网络创新研究院 | 一种基于dpdk实现流量分析业务性能线性增长的方法 |
CN111107053A (zh) * | 2019-11-15 | 2020-05-05 | 北京宇航系统工程研究所 | 一种基于龙芯dpdk的防火墙自动探测绑定网口的方法及系统 |
CN111107053B (zh) * | 2019-11-15 | 2022-03-04 | 北京宇航系统工程研究所 | 一种基于龙芯dpdk的防火墙自动探测绑定网口的方法及系统 |
WO2021203531A1 (zh) * | 2020-04-07 | 2021-10-14 | 中国科学院自动化研究所 | 用于高速数据采集系统的以太网数据流记录方法 |
US11941449B2 (en) | 2020-04-07 | 2024-03-26 | Institute Of Automation, Chinese Academy Of Sciences | Ethernet data stream recording method and system for high-speed data acquisition system |
CN111970249A (zh) * | 2020-07-22 | 2020-11-20 | 山西大学 | 一种基于DPDK的Modbus协议实现方法和装置 |
CN111970249B (zh) * | 2020-07-22 | 2022-11-11 | 山西大学 | 一种基于DPDK的Modbus协议实现方法和装置 |
CN115242895A (zh) * | 2022-07-19 | 2022-10-25 | 杭州迪普科技股份有限公司 | 基于dpdk的访问本机方法和装置 |
CN115242895B (zh) * | 2022-07-19 | 2023-04-18 | 杭州迪普科技股份有限公司 | 基于dpdk的访问本机方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107483237A (zh) | 基于dpdk转发的性能优化系统及方法 | |
CN100375067C (zh) | 异构多核微处理器局部空间共享存储方法 | |
CN103646006B (zh) | 一种处理器的调度方法、装置和系统 | |
CN113645300B (zh) | 一种基于Kubernetes集群的节点智能调度方法和系统 | |
WO2014206289A1 (en) | Method and apparatus for outputting log information | |
CN109582433A (zh) | 一种资源调度方法、装置、云计算系统及存储介质 | |
CN106104484A (zh) | 基于因设备而异或因用户而异的资源使用简档的资源管理 | |
CN103827832B (zh) | 用于在事务中间件机器环境中持久化事务记录的系统与方法 | |
CN103927277A (zh) | Cpu和gpu共享片上高速缓存的方法及装置 | |
CN104202332B (zh) | 基于Linux内核的移动设备虚拟化系统及即时安装方法 | |
CN101382953A (zh) | 在用户空间访问文件系统的接口系统与文件读、写方法 | |
CN101986649B (zh) | 应用于电信行业计费系统的共享数据中心 | |
Adya et al. | Fast key-value stores: An idea whose time has come and gone | |
JP2002140229A (ja) | アプリケーションレベルのメモリ類似性制御 | |
CN109213697A (zh) | 智能存储器数据存储或加载方法和装置 | |
US11940915B2 (en) | Cache allocation method and device, storage medium, and electronic device | |
CN106462561A (zh) | 优化浏览器渲染过程 | |
CN103262035A (zh) | 组合式cpu/gpu体系结构系统中的装置发现和拓扑报告 | |
CN104503825A (zh) | 一种基于kvm混合式设备虚拟化方法 | |
CN108021429A (zh) | 一种基于numa架构的虚拟机内存及网卡资源亲和度计算方法 | |
TWI785320B (zh) | 裝置內標記資料移動系統、資訊處置系統及用於提供裝置內標記資料移動之方法 | |
CN101620573B (zh) | X86体系结构内存管理单元虚拟化方法 | |
CN109672623A (zh) | 一种报文处理方法和装置 | |
CN107015814A (zh) | 满足异构操作系统业务移植的浏览器操作系统设计方法 | |
CN101226491A (zh) | 基于组件的网格中间件互交互方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171215 |
|
RJ01 | Rejection of invention patent application after publication |