CN109445944A - 一种基于dpdk的网络数据采集处理***及其方法 - Google Patents
一种基于dpdk的网络数据采集处理***及其方法 Download PDFInfo
- Publication number
- CN109445944A CN109445944A CN201811252624.7A CN201811252624A CN109445944A CN 109445944 A CN109445944 A CN 109445944A CN 201811252624 A CN201811252624 A CN 201811252624A CN 109445944 A CN109445944 A CN 109445944A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- memory
- timer
- management module
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于DPDK的网络数据采集处理***及其方法,涉及海量数据处理领域。本***是:进程管理模块分别与数据采集分发模块、定时器模块和状态监测模块交互,实现管理的控制;状态监测模块分别与数据采集分发模块和内存管理模块交互,实现信息的收集和记录;内存管理模块分别与数据采集分发模块和TCP/IP协议处理模块交互,控制工作时的内存使用;数据采集分发模块、TCP/IP协议处理模块和定时器管理模块依次交互,实现对原始网络数据包的采集、转发和根据TCP/IP协议进行初步的还原。本发明对影响数据处理性能的因素进行针对性优化,提高程序的处理效率,同时对于不同的业务需求可以快速地进行复用,降低开发难度减少开发周期。
Description
技术领域
本发明涉及海量数据处理领域,尤其涉及一种基于DPDK的网络数据采集处理***及其方法。
背景技术
海量数据处理平台通常对***的处理性能要求较高,需要快速高效地的处理网络数据。随着技术的发展,硬件的处理性能越来越高,多核平台以及大容量内存等资源极大地提高到了海量数据处理的效率,而***处理的瓶颈逐渐向处理软件倾斜。
从软件处理的角度,***的处理性能往往随着处理流量的增大以及处理流程的增多导致性能快速降低。导致性能降低的原因很多,从***调用和线程切换开销的角度,其原因包含如下几点:①多线程处理性能并非与线程数量成线性关系,同时线程间高频率切换所带来的开销会导致处理性能的降低;②***中断0x80以及用户态和内核态的切换存在一定的开销,频繁的***调用带来的影响尤其明显;③多线程之间进行频繁交互,海量消息收发策略的不完善导致性能降低;④未充分利用多核平台的CPU资源。而故针对这些瓶颈点,结合DPDK技术提供的应用面驱动,重点解决了操作***在内核态和用户态的切换问题,以实现海量数据的高效处理。
发明内容
本发明的目的就在于针对海量数据处理领域,通过使用DPDK技术对影响***处理性能的主要点如***调用、线程交互及资源利用等多个方面在用户层面进行优化,提供一种基于DPDK的网络数据采集处理***及其方法。
本发明的目的技术方案是:
通过进程管理模块合理组织各进程及线程间关系,充分利用CPU逻辑核性能以及DPDK所提供的高效的数据采集转发技术,将具体的TCP/IP协议处理模块分散到多个接收数据的子进程中,其共享内存池和定时器资源,完成对各子进程接收到的数据的整理,再转发给后续***。同时还需要充分利用内存管理模块提供的DPDK内存管理模式,尽可能减少用户面与内核的交互,提高用户面对与***资源的利用效率。
具体地说:
一、基于DPDK的网络数据采集处理***(简称***)
本***包括进程管理模块、数据采集分发模块、TCP/IP协议处理模块、内存管理模块、定时器管理模块和状态监测模块;
其交互关系是:
进程管理模块分别与数据采集分发模块、定时器模块和状态监测模块交互,实现管理的控制;
状态监测模块分别与数据采集分发模块和内存管理模块交互,实现信息的收集和记录;
内存管理模块分别与数据采集分发模块和TCP/IP协议处理模块交互,控制工作时的内存使用;
数据采集分发模块、TCP/IP协议处理模块和定时器管理模块依次交互,实现对原始网络数据包的采集、转发和根据TCP/IP协议进行初步的还原。
二、基于DPDK的网络数据采集处理方法(简称方法)
本方法包括下列步骤:
①首先要选择合适环境的参数设置,在进程管理模块(10)中进行调整使各进程能够按照功能需要启动,同时在主进程中也要按照***运行需求合理对DPDK平台环境进行初始化;
②在进程管理模块(10)所构建的框架建立好后,对于数据采集分发模块(20)也需要适应环境进行一定的开发,不同的收发模式需要设计对应的功能函数,之后在子进程收到数据之后衔接上TCP/IP协议处理模块(30)即可;
③内存管理模块(40)所涉及到的交互最多,整个***最主要的数据处理过程,包括数据采集分发模块(20)和TCP/IP协议数据形成模块(30),都会频繁与之进行交互,不过由于DPDK比较完善的内存管理机制,只需要在程序设计中按需申请,之后及时释放即可;此外由于初始化过程都是在主进程中完成的,因此具体在子进程中完成数据分析处理过程时要注意相关资源的外部引用;多个子进程时可以并行执行,由于采取的是各子进程单独占用数据队列,主进程与子进程的通信不会产生冲突,但是涉及内存资源的申请需要按照实际情况考虑是否需要加锁;
④定时器管理模块(50)通过进程管理模块(10),为所有实际业务提供定时器创建接口,并对定时器进行精度管理,及时地产生超时消息,通过执行在设置定时器时定义的回调函数来实现超时处理。
⑤状态监测模块(60)依托于主进程运行,主要通过进程管理模块(10)在初始化时生成的一些结构参数以及内存管理模块(40)在工作中记录的相关信息来获取与***运行情况相关的数据,对于开发者来说此部分也是可以根据所关心的特定方面的状态数据来进行设计的。
本发明具有下列优点和积极效果:
①一致性好:多任务流水线生产模式场景下,不同的开发平台均可使用该模型;
②可拓展性好:对于可承载的任务数量以及使用的内存资源,可以灵活地进行拓展;
③高效性好:可以快速地获取和释放内存资源,在海量数据处理场景下效果更佳;
④安全性好:对内存资源的使用提供保护机制,及时抛出异常点;
⑤可复用性好:该模型可承载各种不同的业务,除业务层以外,其他部分可以复用,降低开发难度;
⑥灵活性好:可以根据任务的繁忙程度,对任务进行灵活合理的规划分组,以最小的线程数担负所有任务。
总之,本发明对影响数据处理性能的因素进行针对性优化,提高程序的处理效率,同时对于不同的业务需求可以快速地进行复用,降低开发难度减少开发周期。
附图说明
图1为本***的结构方框图;
图中:
10—进程管理模块;
20—数据采集分发模块;
30—TCP/IP协议处理模块;
40—内存管理模块;
50—定时器管理模块;
60—状态监测模块。
图2为进程管理模块10的工作流程图;
图3为数据采集分发模块模块20的工作流程图;
图4为TCP/IP协议处理模块30的工作流程图;
图5为内存管理模块40的工作流程图;
图6为定时器管理模块50的工作流程图;
图7为状态监测模块60的工作流程图。
英译汉:
1、DPDK:Data Plane Development Kit,数据面开发工具套件。
具体实施方式
以下结合附图和实施例详细说明。
一、***
1、总体
如图1,本***包括进程管理模块10、数据采集分发模块20、TCP/IP协议处理模块30、内存管理模块40、定时器管理模块50和状态监测模块60;
其交互关系是:
进程管理模块10分别与数据采集分发模块20、定时器模块50和状态监测模块60交互,实现管理的控制;
状态监测模块60分别与数据采集分发模块20和内存管理模块40交互,实现信息的收集和记录;
内存管理模块40分别与数据采集分发模块20和TCP/IP协议处理模块30交互,控制工作时的内存使用;
数据采集分发模块20、TCP/IP协议处理模块30和定时器管理模块50依次交互,实现对原始网络数据包的采集、转发和根据TCP/IP协议进行初步的还原。
工作机理是:
进程管理模块10通过对多线程多进程的设置,实现全局环境的初始化,安排各种具体业务功能的运行;启动状态监测模块60实时记录***运行情况;数据采集分发模块20和TCP/IP协议处理模块30则作为主要业务实现部分完成对数据的处理过程,在此过程中它们会不断与内存管理模块40以及定时器管理模块50进行内存资源以及计时消息的交互。
2、功能模块
1)进程管理模块10
进程管理模块10为整个***的关键模块,其构建的***架构支撑了其他模块的运行,也实现了***环境的初始化;同时对于***整个参数的调整也会影响到***运行的效率;
具体地说,如图2,进程管理模块10的工作流程如下:
a、开始100
开始启动进程管理模块10时,需对全局的环境进行初始化配置,此处会涉及到内存管理模块40和定时器管理模块50;
b、启动主进程101
根据配置文件里的设置按指定模式启动主进程;
c、启动子进程102
主进程根据配置文件里的设置启动子进程;
d、判断子进程是否停止103
是则继续步骤c,否则流程结束。
2数据采集分发模块20
数据采集分发模块20是利用DPDK技术实现对于网络数据包的高速采集以及转发,利用在进程管理模块10中建立的主进程与各子进程的无锁队列完成进程间数据的传递,同时使用存储端口信息的结构体记录数据采集转发情况,可供状态监测模块60收集显示。
具体地说,如图3,数据采集分发模块20的工作流程如下:
a、采集数据200
在主进程中利用DPDK网卡驱动从对应的网卡上将数据包高速拷贝下来,此过程涉及内存管理模块40来提供所需的数据缓存空间;
b、按指定规则分发数据包201
将采集获取到的数据包按既定规则分发给各个子进程,由子进程完成后续处理;
c、子进程接收数据202
子进程接收从主进程通过共享内存机制发来的数据包,并开始进入后续模块继续处理数据。
3、TCP/IP协议处理模块30
TCP/IP协议处理模块30为此***的核心模块,其完成了整个***最主要的任务,在子进程中将数据采集分发模块20传递过来的网络数据包参照TCP/IP协议簇对其中的IP数据包进行分片重组和排序的还原工作,将网卡上采集到的杂乱数据包整理成有序可读的数据流提供给后续***进一步分析。
具体地说,如图4,TCP/IP协议处理模块30的工作流程如下:
a、数据包预处理300
在子进程接收到数据包之后,首先对数据包预处理,将其中的协议头部信息、数据长度的信息关联于对应数据包保存下来,再将组合之后的数据传递给后续的函数处理;
b、判断是否为IP协议301,是则进入步骤c,否则跳转到步骤e;
c、UDP分片包重组/TCP流排序302
首先识别数据包,UDP协议数据对其进行分片重组,TCP协议数据则进行TCP流排序,此流程会涉及到内存管理模块40以及定时器管理模块50,为其提供所需要的内存空间以缓存正在处理中的数据包以及提供定时控制功能执行超时处理避免等待时间过长;
d、判断是否超时303,数据在进行分片重组及排序的过程中,会利用定时器实时计算时间,判断在规定等待时间内是否处理好了一条完整的UDP或TCP流,是则经过子步骤A后再进入步骤e,否则经过子步骤B后再进入步骤e:
所述的A、将整理好的数据包转发304,将处理好的数据流转发给后续具体的业务数据分析***,同时释放相应的内存空间,重置定时器等待处理下一条数据流;
所述的B、将未处理完的数据转发305,由于超时不再等待该数据流是否还能完成重组或排序,直接将目前已处理完的部分转发,释放相应的内存,超时情况下定时器自动重置;
e、转发给后续数据分析***306,将已经由本模块尽可能处理好的网络数据包转发给后续连接的数据分析***,根据后续需求分析数据,此处后续的分析***不属于本***,但是此处会有一个公共的接口用于将数据转发出去。
4、内存管理模块40
通过DPDK内存库提供的内存管理架构,为各业务实现提供用户面的内存调用接口,优化***内存资源的使用,通过避免用户面与内核交互来获取内存,既保证了***的高效运行也减少了与内核交互导致内存使用出现异常的风险;
具体地说,如图5,内存管理模块40的工作流程如下:
a、内存空间初始化400
根据***启动前分配的***大页面,将其全部占用,并以此建立虚拟内存和实际物理内存的映射,优化内存结构,等待后续使用;
b、创建优化后的数据结构401
在已建立的内存映射的基础上,建立DPDK内置的环形队列这种经过优化的数据结构,由此可以完成大量数据的缓存空间的提供或是不同进程间数据的传递;
c、接受内存申请402
用户面在实现其他模块的各种功能时,涉及到内存使用的,会向内存管理模块40提出内存申请,在接受到相应的申请后,内存管理模块40会根据内存的具体使用情况给予响应,返回所需的内存空间;
d、修改内存结构中相应的信息记录403
在新的一次内存申请被响应的同时,所创建的数据结构会修改相关的记录,同时环形队列中各指针也会对应发生变动以实现对用户面提供实际的内存空间;
e、使用完后释放内存404
有别于原生操作***,DPDK在释放内存时并不是将其置空,而是将其挂入空闲链表中,等待下一次使用,也就是说即使用户面看来失去了对那块内存的使用权,但是DPDK依然占用着那块内存并由DPDK自己维护所有的内存结构,这就使得每次申请内存时其实不需要经过内核,能够极大提高效率。
5、定时器管理模块50
定时器管理模块通过利用DPDK定时器库,为具体业务实现提供定时器管理接口,并且通过绑定各CPU逻辑核,启动相关函数保证定时器精度,同时设计响应超时处理函数来完成超时管理,此外还提供定时器终止及回收接口保护相应资源。
具体地说,如图6,定时器管理模块50的工作流程如下:
a、定时器模块初始化500
以模型定时器为基础创建用户层时钟,初始化定时器管理模块50,根据定时器超时长度进行管理,对于相关业务的不同超时时长可利用不同超时时长复用定时器;
b、启用定时器管理函数确保定时器运行精度501
启用属于DPDK定时器库的管理函数,在每个执行定时器的线程中都要进行调用,以确保定时器的精度,同时还可以根据用户需要在管理函数的执行体中添加用户设计的算法以辅助定时器的超时控制;
c、设置定时器并启用502
按用户需求设置定时器的参数并启动定时器;
d、判断是否超时503
若是超时,则执行超时回调函数504,完成用户面对于超时之后的任务需求;
若否超时,则执行判断用户是否主动停止505,是则跳转到步骤e,否则继续步骤d;
e、停止并回收定时器506
用户面使用完定时器后,需要执行一个定时器库中的停止函数,使所使用的定时器处于空闲无主状态,之后对该定时器执行释放操作以回收资源。
6、状态监测模块60
状态监测模块60通过不断获取DPDK以及数据处理相关模块中维护内存管理及数据处理流程的各种结构体的信息,直接或间接地得出***运行过程中的各种状态信息,例如数据流量、内存占用等信息,并以一定的标准对***运行情况进行异常记录。
具体地说,如图7,状态监测模块60的工作流程如下:
6、按权利要求1所述的网络数据采集处理***,其特征在于所述的状态监测模块(60)的工作流程如下:
a、创建线程开始监测600
由于状态监测模块60需要监测全局情况,因此也仅需在主进程中创建相应线程准备执行监测任务即可;
或b、采集各类状态信息601
通过利用DPDK为高效存储转发数据所建立的关于驱动、端口、内存信息的存储结构,在其中获取与***运行状态如数据流量、端口状态、内存使用信息;
或c、设置警戒线监测异常602
对于流量统计、内存使用的信息设置数据监测范围、当监测数据出现异常时能够及时记录当前时刻其他各项数据,为后续反馈问题修复缺陷提供最直接的参考数据。
3、本发明的工作机理
进程管理模块10通过对多线程多进程的设置,实现全局环境的初始化,安排各种具体业务功能的运行,启动状态监测模块60实时记录***运行情况;数据采集分发模块20和TCP/IP协议处理模块30则作为主要业务实现部分完成对数据的处理过程,在此过程中它们会不断与内存管理模块40以及定时器管理模块50进行内存资源以及计时消息的交互。
4、本发明具体举例,如实际的硬件***仅有一台服务器可供数据分析,我们可以构建此***,由一个网口接入数据,主进程就绑定在此网口上;通过进程管理模块,将子进程数目设为6,绑定到不同的CPU逻辑核上单独运行,为其创建各自的无锁队列用于接收数据;主进程通过用户定义的算法将网口采集到的数据较为均匀的发送到这6个无锁队列中;在子进程通过各自的无锁队列接收到数据后进入TCP/IP协议处理模块完成IP数据流处理,其中所需要使用的内存和定时器都可以通过内存管理模块和定时器管理模块进行申请设置;最后用户可以通过状态监测模块来查看各个子进程接收数据以及在数据传输和协议处理过程中内存的使用情况,分析性能是否充分利用或是已经超出极限。
Claims (8)
1.一种基于DPDK的网络数据采集处理***,其特征在于:
本***包括进程管理模块(10)、数据采集分发模块(20)、TCP/IP协议处理模块(30)、内存管理模块(40)、定时器管理模块(50)和状态监测模块(60);
其交互关系是:
进程管理模块(10)分别与数据采集分发模块(20)、定时器模块(50)和状态监测模块(60)交互,实现管理的控制;
状态监测模块(60)分别与数据采集分发模块(20)和内存管理模块(40)交互,实现信息的收集和记录;
内存管理模块(40)分别与数据采集分发模块(20)和TCP/IP协议处理模块(30)交互,控制工作时的内存使用;
数据采集分发模块(20)、TCP/IP协议处理模块(30)和定时器管理模块(50)依次交互,实现对原始网络数据包的采集、转发和根据TCP/IP协议进行初步的还原。
2.按权利要求1所述的网络数据采集处理***,其特征在于所述的进程管理模块(10)的工作流程如下:
a、开始(100)
开始启动进程管理模块(10)时,需对全局的环境进行初始化配置,此处会涉及到内存管理模块(40)和定时器管理模块(50);
b、启动主进程(101)
根据配置文件里的设置按指定模式启动主进程;
c、启动子进程(102)
主进程根据配置文件里的设置启动子进程;
d、判断子进程是否停止(103)
是则继续步骤c,否则流程结束。
3.按权利要求1所述的网络数据采集处理***,其特征在于所述的数据采集分发模块(20)的工作流程如下:
a、采集数据(200)
在主进程中利用DPDK网卡驱动从对应的网卡上将数据包高速拷贝下来,此过程涉及内存管理模块40来提供所需的数据缓存空间;
b、按指定规则分发数据包(201)
将采集获取到的数据包按既定规则分发给各个子进程,由子进程完成后续处理;
c、子进程接收数据(202)
子进程接收从主进程通过共享内存机制发来的数据包,并开始进入后续模块继续处理数据。
4.按权利要求1所述的网络数据采集处理***,其特征在于所述的TCP/IP协议处理模块(30)的工作流程如下:
a、数据包预处理(300)
在子进程接收到数据包之后,首先对数据包预处理,将其中的协议头部信息、数据长度的信息关联于对应数据包保存下来,再将组合之后的数据传递给后续的函数处理;
b、判断是否为IP协议(301),是则进入步骤c,否则跳转到步骤e;
c、UDP分片包重组/TCP流排序(302)
首先识别数据包,UDP协议数据对其进行分片重组,TCP协议数据则进行TCP流排序,此流程会涉及到内存管理模块(40)以及定时器管理模块(50),为其提供所需要的内存空间以缓存正在处理中的数据包以及提供定时控制功能执行超时处理避免等待时间过长;
d、判断是否超时(303),数据在进行分片重组及排序的过程中,会利用定时器实时计算时间,判断在规定等待时间内是否处理好了一条完整的UDP或TCP流,是则经过子步骤A后再进入步骤e,否则经过子步骤B后再进入步骤e:
所述的步骤A、将整理好的数据包转发(304),将处理好的数据流转发给后续具体的业务数据分析***,同时释放相应的内存空间,重置定时器等待处理下一条数据流;
所述的步骤B、将未处理完的数据转发(305),由于超时不再等待该数据流是否还能完成重组或排序,直接将目前已处理完的部分转发,释放相应的内存,超时情况下定时器自动重置;
e、转发给后续数据分析***(306),将已经由本模块尽可能处理好的网络数据包转发给后续连接的数据分析***,根据后续需求分析数据,此处后续的分析***不属于本***,但是此处会有一个公共的接口用于将数据转发出去。
5.按权利要求1所述的网络数据采集处理***,其特征在于所述的内存管理模块(40)的工作流程如下:
a、内存空间初始化(400)
根据***启动前分配的***大页面,将其全部占用,并以此建立虚拟内存和实际物理内存的映射,优化内存结构,等待后续使用;
b、创建优化后的数据结构(401)
在已建立的内存映射的基础上,建立DPDK内置的环形队列这种经过优化的数据结构,由此可以完成大量数据的缓存空间的提供或是不同进程间数据的传递;
c、接受内存申请(402)
用户面在实现其他模块的各种功能时,涉及到内存使用的,会向内存管理模块40提出内存申请,在接受到相应的申请后,内存管理模块40会根据内存的具体使用情况给予响应,返回所需的内存空间;
d、修改内存结构中相应的信息记录(403)
在新的一次内存申请被响应的同时,所创建的数据结构会修改相关的记录,同时环形队列中各指针也会对应发生变动以实现对用户面提供实际的内存空间;
e、使用完后释放内存(404)
有别于原生操作***,DPDK在释放内存时并不是将其置空,而是将其挂入空闲链表中,等待下一次使用,也就是说即使用户面看来失去了对那块内存的使用权,但是DPDK依然占用着那块内存并由DPDK自己维护所有的内存结构,这就使得每次申请内存时其实不需要经过内核,能够极大提高效率。
6.按权利要求1所述的网络数据采集处理***,其特征在于所述的定时器管理模块(50)的工作流程如下:
a、定时器模块初始化(500)
以模型定时器为基础创建用户层时钟,初始化定时器管理模块(50),根据定时器超时长度进行管理,对于相关业务的不同超时时长可利用不同超时时长复用定时器;
b、启用定时器管理函数确保定时器运行精度(501)
启用属于DPDK定时器库的管理函数,在每个执行定时器的线程中都要进行调用,以确保定时器的精度,同时还可以根据用户需要在管理函数的执行体中添加用户设计的算法以辅助定时器的超时控制;
c、设置定时器并启用(502)
按用户需求设置定时器的参数并启动定时器;
d、判断是否超时(503)
若是超时,则执行超时回调函数(504),完成用户面对于超时之后的任务需求;
若否超时,则执行判断用户是否主动停止(505),是则跳转到步骤e,否则继续步骤d;
e、停止并回收定时器(506)
用户面使用完定时器后,需要执行一个定时器库中的停止函数,使所使用的定时器处于空闲无主状态,之后对该定时器执行释放操作以回收资源。
7.按权利要求1所述的网络数据采集处理***,其特征在于所述的状态监测模块(60)的工作流程如下:
a、创建线程开始监测600
由于状态监测模块60需要监测全局情况,因此也仅需在主进程中创建相应线程准备执行监测任务即可;
或b、采集各类状态信息601
通过利用DPDK为高效存储转发数据所建立的关于驱动、端口、内存信息的存储结构,在其中获取与***运行状态如数据流量、端口状态、内存使用信息;
或c、设置警戒线监测异常602
对于流量统计、内存使用的信息设置数据监测范围、当监测数据出现异常时能够及时记录当前时刻其他各项数据,为后续反馈问题修复缺陷提供最直接的参考数据。
8.基于权利要求1-7所述网络数据采集处理***的处理方法方法,其特征在于:
①首先要选择合适环境的参数设置,在进程管理模块(10)中进行调整使各进程能够按照功能需要启动,同时在主进程中也要按照***运行需求合理对DPDK平台环境进行初始化;
②在进程管理模块(10)所构建的框架建立好后,对于数据采集分发模块(20)也需要适应环境进行一定的开发,不同的收发模式需要设计对应的功能函数,之后在子进程收到数据之后衔接上TCP/IP协议处理模块(30)即可;
③内存管理模块(40)所涉及到的交互最多,整个***最主要的数据处理过程,包括数据采集分发模块(20)和TCP/IP协议数据形成模块(30),都会频繁与之进行交互,不过由于DPDK比较完善的内存管理机制,只需要在程序设计中按需申请,之后及时释放即可;此外由于初始化过程都是在主进程中完成的,因此具体在子进程中完成数据分析处理过程时要注意相关资源的外部引用;多个子进程时可以并行执行,由于采取的是各子进程单独占用数据队列,主进程与子进程的通信不会产生冲突,但是涉及内存资源的申请需要按照实际情况考虑是否需要加锁;
④定时器管理模块(50)通过进程管理模块(10),为所有实际业务提供定时器创建接口,并对定时器进行精度管理,及时地产生超时消息,通过执行在设置定时器时定义的回调函数来实现超时处理;
⑤状态监测模块(60)依托于主进程运行,主要通过进程管理模块(10)在初始化时生成的一些结构参数以及内存管理模块(40)在工作中记录的相关信息来获取与***运行情况相关的数据,对于开发者来说此部分也是可以根据所关心的特定方面的状态数据来进行设计的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811252624.7A CN109445944B (zh) | 2018-10-25 | 2018-10-25 | 一种基于dpdk的网络数据采集处理***及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811252624.7A CN109445944B (zh) | 2018-10-25 | 2018-10-25 | 一种基于dpdk的网络数据采集处理***及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109445944A true CN109445944A (zh) | 2019-03-08 |
CN109445944B CN109445944B (zh) | 2021-07-23 |
Family
ID=65548604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811252624.7A Active CN109445944B (zh) | 2018-10-25 | 2018-10-25 | 一种基于dpdk的网络数据采集处理***及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109445944B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569126A (zh) * | 2019-09-09 | 2019-12-13 | 南京中孚信息技术有限公司 | 目标应用的数据包处理方法、装置及电子设备 |
CN110971487A (zh) * | 2019-11-26 | 2020-04-07 | 武汉虹信通信技术有限责任公司 | 网络协议识别方法及装置 |
CN111049762A (zh) * | 2019-12-23 | 2020-04-21 | 上海金仕达软件科技有限公司 | 数据采集方法、装置、存储介质及交换机 |
CN111737016A (zh) * | 2020-08-17 | 2020-10-02 | 上海飞旗网络技术股份有限公司 | 一种面向云边融合***的业务数据处理方法及装置 |
CN111817915A (zh) * | 2020-06-30 | 2020-10-23 | 武汉虹旭信息技术有限责任公司 | 一种基于dpdk的协议解析框架 |
CN111813547A (zh) * | 2020-06-30 | 2020-10-23 | 武汉虹旭信息技术有限责任公司 | 基于dpdk的数据包处理方法及装置 |
CN112153005A (zh) * | 2020-08-26 | 2020-12-29 | 广东网堤信息安全技术有限公司 | 一种tcpudp数据包转发***的架构 |
CN112260952A (zh) * | 2020-10-20 | 2021-01-22 | 四川天邑康和通信股份有限公司 | 一种wifi6路由器快速数据存取保护方法 |
CN113518270A (zh) * | 2021-05-24 | 2021-10-19 | 北京邮电大学 | 面向移动网络的异构数据采集装置和方法 |
CN114070900A (zh) * | 2020-07-27 | 2022-02-18 | 大唐移动通信设备有限公司 | 一种基于dpdk的抓包处理方法和装置 |
CN115167833A (zh) * | 2022-09-02 | 2022-10-11 | 浙江大华技术股份有限公司 | 编程方法、可执行程序的执行方法及装置 |
CN115827413A (zh) * | 2023-02-14 | 2023-03-21 | 北京大道云行科技有限公司 | 一种基于大页内存的存储监控***及方法 |
CN115934361A (zh) * | 2023-02-01 | 2023-04-07 | 天翼云科技有限公司 | 本地域名***服务器的优化方法及相关设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160275026A1 (en) * | 2015-03-20 | 2016-09-22 | Intel Corporation | Weakly ordered doorbell |
US20170026301A1 (en) * | 2015-07-22 | 2017-01-26 | The Regents Of The University Of Colorado, A Body Corporate | Stateless network functions |
US20170192921A1 (en) * | 2016-01-04 | 2017-07-06 | Ren Wang | Multi-core communication acceleration using hardware queue device |
CN108062269A (zh) * | 2017-12-05 | 2018-05-22 | 上海交通大学 | 一种基于dpdk的计算资源弹性伸缩方法及*** |
CN108345502A (zh) * | 2018-01-15 | 2018-07-31 | 中兴飞流信息科技有限公司 | 基于dpdk的资源调度方法、装置、终端设备及可读存储介质 |
CN108616419A (zh) * | 2018-03-30 | 2018-10-02 | 武汉虹旭信息技术有限责任公司 | 一种基于Docker的数据包采集分析***及其方法 |
-
2018
- 2018-10-25 CN CN201811252624.7A patent/CN109445944B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160275026A1 (en) * | 2015-03-20 | 2016-09-22 | Intel Corporation | Weakly ordered doorbell |
US20170026301A1 (en) * | 2015-07-22 | 2017-01-26 | The Regents Of The University Of Colorado, A Body Corporate | Stateless network functions |
US20170192921A1 (en) * | 2016-01-04 | 2017-07-06 | Ren Wang | Multi-core communication acceleration using hardware queue device |
CN108062269A (zh) * | 2017-12-05 | 2018-05-22 | 上海交通大学 | 一种基于dpdk的计算资源弹性伸缩方法及*** |
CN108345502A (zh) * | 2018-01-15 | 2018-07-31 | 中兴飞流信息科技有限公司 | 基于dpdk的资源调度方法、装置、终端设备及可读存储介质 |
CN108616419A (zh) * | 2018-03-30 | 2018-10-02 | 武汉虹旭信息技术有限责任公司 | 一种基于Docker的数据包采集分析***及其方法 |
Non-Patent Citations (2)
Title |
---|
令瑞林;李峻峰;李丹: "基于多核平台的高速网络流量实时捕获方法", 《计算机研究与发展》 * |
虚拟机安全保障及其性能优化关键技术研究: "唐宏伟", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569126A (zh) * | 2019-09-09 | 2019-12-13 | 南京中孚信息技术有限公司 | 目标应用的数据包处理方法、装置及电子设备 |
CN110971487A (zh) * | 2019-11-26 | 2020-04-07 | 武汉虹信通信技术有限责任公司 | 网络协议识别方法及装置 |
CN110971487B (zh) * | 2019-11-26 | 2021-10-26 | 武汉虹旭信息技术有限责任公司 | 网络协议识别方法及装置 |
CN111049762A (zh) * | 2019-12-23 | 2020-04-21 | 上海金仕达软件科技有限公司 | 数据采集方法、装置、存储介质及交换机 |
CN111813547A (zh) * | 2020-06-30 | 2020-10-23 | 武汉虹旭信息技术有限责任公司 | 基于dpdk的数据包处理方法及装置 |
CN111817915B (zh) * | 2020-06-30 | 2022-04-01 | 武汉虹旭信息技术有限责任公司 | 一种基于dpdk的协议解析*** |
CN111817915A (zh) * | 2020-06-30 | 2020-10-23 | 武汉虹旭信息技术有限责任公司 | 一种基于dpdk的协议解析框架 |
CN111813547B (zh) * | 2020-06-30 | 2023-10-31 | 武汉虹旭信息技术有限责任公司 | 基于dpdk的数据包处理方法及装置 |
CN114070900A (zh) * | 2020-07-27 | 2022-02-18 | 大唐移动通信设备有限公司 | 一种基于dpdk的抓包处理方法和装置 |
CN111737016B (zh) * | 2020-08-17 | 2020-11-03 | 上海飞旗网络技术股份有限公司 | 一种面向云边融合***的业务数据处理方法及装置 |
CN111737016A (zh) * | 2020-08-17 | 2020-10-02 | 上海飞旗网络技术股份有限公司 | 一种面向云边融合***的业务数据处理方法及装置 |
CN112153005A (zh) * | 2020-08-26 | 2020-12-29 | 广东网堤信息安全技术有限公司 | 一种tcpudp数据包转发***的架构 |
CN112260952A (zh) * | 2020-10-20 | 2021-01-22 | 四川天邑康和通信股份有限公司 | 一种wifi6路由器快速数据存取保护方法 |
CN113518270A (zh) * | 2021-05-24 | 2021-10-19 | 北京邮电大学 | 面向移动网络的异构数据采集装置和方法 |
CN115167833A (zh) * | 2022-09-02 | 2022-10-11 | 浙江大华技术股份有限公司 | 编程方法、可执行程序的执行方法及装置 |
CN115167833B (zh) * | 2022-09-02 | 2022-12-02 | 浙江大华技术股份有限公司 | 编程方法、可执行程序的执行方法及装置 |
CN115934361A (zh) * | 2023-02-01 | 2023-04-07 | 天翼云科技有限公司 | 本地域名***服务器的优化方法及相关设备 |
CN115934361B (zh) * | 2023-02-01 | 2023-06-23 | 天翼云科技有限公司 | 本地域名***服务器的优化方法及相关设备 |
CN115827413A (zh) * | 2023-02-14 | 2023-03-21 | 北京大道云行科技有限公司 | 一种基于大页内存的存储监控***及方法 |
CN115827413B (zh) * | 2023-02-14 | 2023-04-18 | 北京大道云行科技有限公司 | 一种基于大页内存的存储监控***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109445944B (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109445944A (zh) | 一种基于dpdk的网络数据采集处理***及其方法 | |
EP3425502B1 (en) | Task scheduling method and device | |
EP3073374B1 (en) | Thread creation method, service request processing method and related device | |
CN108762896A (zh) | 一种基于Hadoop集群任务调度方法及计算机设备 | |
CN110113387A (zh) | 一种基于分布式批量处理***的处理方法、装置及*** | |
CN109564528B (zh) | 分布式计算中计算资源分配的***和方法 | |
CN103197968A (zh) | 一种融合同步异步特点的线程池处理方法及*** | |
Lai et al. | Sol: Fast distributed computation over slow networks | |
Ahmadinia et al. | Task scheduling for heterogeneous reconfigurable computers | |
CN112052068A (zh) | 一种Kubernetes容器平台CPU绑核的方法与装置 | |
CN111767146A (zh) | 一种基于网络重配置的分布式机器学习***加速方法 | |
CN112463349A (zh) | 一种高效调度gpu能力的负载均衡方法及*** | |
US20240152395A1 (en) | Resource scheduling method and apparatus, and computing node | |
CN109739634A (zh) | 一种原子任务执行方法及装置 | |
Liu et al. | Optimizing shuffle in wide-area data analytics | |
CN113672391A (zh) | 一种基于Kubernetes的并行计算任务调度方法与*** | |
CN109828842A (zh) | 一种基于dpdk技术开发的高性能数据采集引擎方法 | |
Chiang et al. | DynamoML: Dynamic Resource Management Operators for Machine Learning Workloads. | |
CN109656716A (zh) | 一种Slurm作业调度方法及*** | |
CN115114022A (zh) | 对gpu资源进行使用的方法、***、设备及介质 | |
CN117331655A (zh) | 多线程调度方法及装置 | |
CN114995971A (zh) | 实现kubernetes中pod批量调度方法及*** | |
Chen et al. | G-storm: a gpu-aware storm scheduler | |
CN101197782B (zh) | 一种基于多核处理器的网络设备的控制方法及*** | |
CN111026809A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |