CN117827497A - 基于国产多核处理器的流量统计并实时排序的方法及装置 - Google Patents
基于国产多核处理器的流量统计并实时排序的方法及装置 Download PDFInfo
- Publication number
- CN117827497A CN117827497A CN202410245098.0A CN202410245098A CN117827497A CN 117827497 A CN117827497 A CN 117827497A CN 202410245098 A CN202410245098 A CN 202410245098A CN 117827497 A CN117827497 A CN 117827497A
- Authority
- CN
- China
- Prior art keywords
- queues
- traffic
- flow
- waiting
- execution
- 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
- 238000012163 sequencing technique Methods 0.000 title claims abstract description 42
- 238000000034 method Methods 0.000 title claims abstract description 24
- 230000000737 periodic effect Effects 0.000 claims abstract description 19
- 230000000694 effects Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000010387 memory retrieval Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于国产多核处理器的流量统计并实时排序的方法及装置,所述方法包括:创建k个等待队列和k个执行队列,将流量写入k个等待队列;k个周期性timer从k个等待队列取出流量放入k个执行队列,然后从k个执行队列并发取出流量并进行流量排序。本发明通过使用等待队列和执行队列双队列方式,减少了一半的锁冲突,而且k个周期性timer独立排序,从而达到了并发排序的效果,通过以上两点,性能得到极大提升,实现了基于国产多核处理器多线程并发流量统计并实时排序的功能。
Description
技术领域
本发明涉及网络流量技术领域,具体而言,涉及一种基于国产多核处理器的流量统计并实时排序的方法及装置。
背景技术
随着dpdk开发套件及其相关技术的日益成熟,基于多核处理器的网络安全设备使用用户态协议栈后,其转发性能有了大幅提升。但是随着转发性能的提升,流量统计面临很大的运算压力,国产多核处理器目前在单核性能表现一般,如果处理不好,将无法实时精确统计流量并排序。
现有实时流量排序技术通常首先接收报文,统计当前报文数量,存储至IP哈希数组中,然后进行相关的排序算法处理,并没有考虑多特征条件分别实时流量统计并排序,比如:公开号为CN105187279A的专利《一种流量统计并实时排名的方法》。
目前,国产多核处理器使用越来越多,但是国产多核处理器单核性能一般,大部分研究都没有考虑到基于国产多核处理器的多特征条件分别实时流量统计并排序,例如公开号为CN115174446A的专利《一种网络流量统计的方法、装置及电子设备》,公开号为CN115225544A的专利《一种网络流量统计和监测方法、装置、电子设备及介质》,公开号为CN114244752A的专利《流量统计方法、装置和设备》,以及公开号为CN115665065A的专利《一种基于IP地址的流量统计方法、系统、设备及介质》。
发明内容
本发明旨在提供一种基于国产多核处理器的流量统计并实时排序的方法及装置,将流量同时写入多个队列,通过内存换取性能,实现多线程并发,以解决国产多核处理器单核处理性能低,无法实时流量排序的问题。
本发明提供的一种基于国产多核处理器的流量统计并实时排序的方法,包括:
创建k个等待队列和k个执行队列,将流量写入k个等待队列;
k个周期性timer从k个等待队列取出流量放入k个执行队列,然后从k个执行队列并发取出流量并进行流量排序。
进一步的,创建k个等待队列和k个执行队列,将流量写入k个等待队列包括:
获取网络数据;
用户态协议栈将五元组形式的网络数据及其数据大小写入共享缓存;
创建k个等待队列和k个执行队列;
循环读取共享缓存内容,并将相同五元组合并计算流量;
将按五元组合并的流量分别写入k个等待队列。
进一步的,等待队列包括源ip等待队列和目的ip等待队列,执行队列包括源ip执行队列和目的ip执行队列。
进一步的,k个周期性timer从k个等待队列取出流量放入k个执行队列,然后从k个执行队列并发取出流量并进行流量排序包括:
创建k个周期为m秒的timer;
k个周期性timer执行时,首先从等待队列加锁一次性取出流量放入执行队列;然后k个周期性timer分别从k个执行队列取流量进行k个条件流量排序,完成排序后保留topn流量为排序结果;
存储排序结果;
读取排序结果并展示。
进一步的,将排序结果分别写入k个不同的xml文件,前端界面查询xml展示结果。
本发明还提供一种基于国产多核处理器的流量统计并实时排序的装置,包括:
流量写入模块,用于创建k个等待队列和k个执行队列,将流量写入k个等待队列;
流量查询模块,用于通过k个周期性timer从k个等待队列取出流量放入k个执行队列,然后从k个执行队列并发取出流量并进行流量排序。
进一步的,当获取网络数据,用户态协议栈将五元组形式的网络数据及其数据大小写入共享缓存后,所述流量写入模块用于:
创建k个等待队列和k个执行队列;
循环读取共享缓存内容,并将相同五元组合并计算流量;
以及,将按五元组合并的流量分别写入k个等待队列。
进一步的,等待队列包括源ip等待队列和目的ip等待队列,执行队列包括源ip执行队列和目的ip执行队列。
进一步的,所述流量查询模块用于:
创建k个周期为m秒的timer;
k个周期性timer执行时,首先从等待队列加锁一次性取出流量放入执行队列;然后k个周期性timer分别从k个执行队列取流量进行k个条件流量排序,完成排序后保留topn流量为排序结果;
存储排序结果;
以及,读取排序结果并展示。
进一步的,所述流量查询模块中,将排序结果分别写入k个不同的xml文件,前端界面查询xml展示结果。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1、本发明通过用户态协议栈将流量写入共享缓存,后台流量写入模块读取共享缓存记录流量写入k个不同的队列,原有用户态协议栈性能基本不受影响。
2、本发明k个周期性timer能够独立并发运行,同时能够排序统计k个特征的流量,通过并发运行,多核参与运算,解决了国产多核处理器单核处理性能低,流量比较大时,无法实时流量排序的问题。
3、本发明通过使用等待队列和执行队列双队列方式,减少了一半的锁冲突,而且k个周期性timer独立排序,从而达到了并发排序的效果,通过以上两点,性能得到极大提升,实现了基于国产多核处理器多线程并发流量统计并实时排序的功能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明基于国产多核处理器的流量统计并实时排序的流程图。
图2为本发明流程写入的流程图。
图3为本发明流程查询的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1所示,本实施例提出一种基于国产多核处理器的流量统计并实时排序的方法,包括如下步骤:
(1)流量写入,如图2所示:
(1.1)设备上电,并将设备置于网络环境中获取网络数据;
(1.2)用户态协议栈将五元组形式的网络数据及其数据大小写入共享缓存;
(1.3)创建2k个队列,包括k个等待队列和k个执行队列;其中,等待队列包括源ip等待队列和目的ip等待队列,执行队列包括源ip执行队列和目的ip执行队列;
(1.4)循环读取共享缓存内容,并将相同五元组合并计算流量,以减小后续查询过程计算量;
(1.5)将按五元组合并的流量分别写入源ip等待队列、目的ip等待队列等k个等待队列;
(2)流量查询,如图3所示:
(2.1)创建k个周期为m秒的timer;
(2.2)周期性timer执行时,首先从等待队列加锁一次性取出流量放入执行队列,这个过程只需要加一次锁,然后k个timer线程分别从k个执行队列取流量进行k个条件流量排序,此过程不需要加锁,排序保留top n流量;
(2.3)将源ip流量、目的ip流量等排序结果分别写入k个不同的xml文件,前端界面查询xml展示结果。
实施例2
如图1所示,本实施例提出一种基于国产多核处理器的流量统计并实时排序的装置,包括:
(1)流量写入模块,如图2所示,工作原理如下:
(1.1)设备上电,并将设备置于网络环境中获取网络数据;
(1.2)用户态协议栈将五元组形式的网络数据及其数据大小写入共享缓存;
(1.3)流量写入模块创建2k个队列,包括k个等待队列和k个执行队列;其中,等待队列包括源ip等待队列和目的ip等待队列,执行队列包括源ip执行队列和目的ip执行队列;
(1.4)流量写入模块循环读取共享缓存内容,并将相同五元组合并计算流量,以减小后续查询过程计算量;
(1.5)流量写入模块将按五元组合并的流量分别写入源ip等待队列、目的ip等待队列等k个等待队列;
(2)流量查询模块,如图3所示,工作原理如下:
(2.1)流量查询模块创建k个周期为m秒的timer;
(2.2)流量查询模块周期性timer执行时,首先从等待队列加锁一次性取出流量放入执行队列,这个过程只需要加一次锁,然后k个timer线程分别从k个执行队列取流量进行k个条件流量排序,此过程不需要加锁,排序保留top n流量;
(2.3)流量查询模块将源ip流量、目的ip流量等排序结果分别写入k个不同的xml文件,前端界面查询xml展示结果。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于国产多核处理器的流量统计并实时排序的方法,其特征在于,包括:
创建k个等待队列和k个执行队列,将流量写入k个等待队列;
k个周期性timer从k个等待队列取出流量放入k个执行队列,然后从k个执行队列并发取出流量并进行流量排序。
2.根据权利要求1所述的基于国产多核处理器的流量统计并实时排序的方法,其特征在于,创建k个等待队列和k个执行队列,将流量写入k个等待队列包括:
获取网络数据;
用户态协议栈将五元组形式的网络数据及其数据大小写入共享缓存;
创建k个等待队列和k个执行队列;
循环读取共享缓存内容,并将相同五元组合并计算流量;
将按五元组合并的流量分别写入k个等待队列。
3.根据权利要求2所述的基于国产多核处理器的流量统计并实时排序的方法,其特征在于,等待队列包括源ip等待队列和目的ip等待队列,执行队列包括源ip执行队列和目的ip执行队列。
4.根据权利要求3所述的基于国产多核处理器的流量统计并实时排序的方法,其特征在于,k个周期性timer从k个等待队列取出流量放入k个执行队列,然后从k个执行队列并发取出流量并进行流量排序包括:
创建k个周期为m秒的timer;
k个周期性timer执行时,首先从等待队列加锁一次性取出流量放入执行队列;然后k个周期性timer分别从k个执行队列取流量进行k个条件流量排序,完成排序后保留top n流量为排序结果;
存储排序结果;
读取排序结果并展示。
5.根据权利要求1所述的基于国产多核处理器的流量统计并实时排序的方法,其特征在于,将排序结果分别写入k个不同的xml文件,前端界面查询xml展示结果。
6.一种基于国产多核处理器的流量统计并实时排序的装置,其特征在于,包括:
流量写入模块,用于创建k个等待队列和k个执行队列,将流量写入k个等待队列;
流量查询模块,用于通过k个周期性timer从k个等待队列取出流量放入k个执行队列,然后从k个执行队列并发取出流量并进行流量排序。
7.根据权利要求6所述的基于国产多核处理器的流量统计并实时排序的装置,其特征在于,当获取网络数据,用户态协议栈将五元组形式的网络数据及其数据大小写入共享缓存后,所述流量写入模块用于:
创建k个等待队列和k个执行队列;
循环读取共享缓存内容,并将相同五元组合并计算流量;
以及,将按五元组合并的流量分别写入k个等待队列。
8.根据权利要求7所述的基于国产多核处理器的流量统计并实时排序的装置,其特征在于,等待队列包括源ip等待队列和目的ip等待队列,执行队列包括源ip执行队列和目的ip执行队列。
9.根据权利要求8所述的基于国产多核处理器的流量统计并实时排序的装置,其特征在于,所述流量查询模块用于:
创建k个周期为m秒的timer;
k个周期性timer执行时,首先从等待队列加锁一次性取出流量放入执行队列;然后k个周期性timer分别从k个执行队列取流量进行k个条件流量排序,完成排序后保留top n流量为排序结果;
存储排序结果;
以及,读取排序结果并展示。
10.根据权利要求9所述的基于国产多核处理器的流量统计并实时排序的装置,其特征在于,所述流量查询模块中,将排序结果分别写入k个不同的xml文件,前端界面查询xml展示结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410245098.0A CN117827497A (zh) | 2024-03-05 | 2024-03-05 | 基于国产多核处理器的流量统计并实时排序的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410245098.0A CN117827497A (zh) | 2024-03-05 | 2024-03-05 | 基于国产多核处理器的流量统计并实时排序的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117827497A true CN117827497A (zh) | 2024-04-05 |
Family
ID=90508093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410245098.0A Pending CN117827497A (zh) | 2024-03-05 | 2024-03-05 | 基于国产多核处理器的流量统计并实时排序的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117827497A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130003567A1 (en) * | 2011-06-28 | 2013-01-03 | Verisign, Inc. | Parallel processing for multiple instance real-time monitoring |
CN103414594A (zh) * | 2013-08-23 | 2013-11-27 | 烽火通信科技股份有限公司 | 一种用于计费和监控的ip流信息统计方法 |
CN106533961A (zh) * | 2016-12-30 | 2017-03-22 | 中国农业银行股份有限公司 | 一种流量控制方法及装置 |
CN106713185A (zh) * | 2016-12-06 | 2017-05-24 | 瑞斯康达科技发展股份有限公司 | 一种多核cpu的负载均衡方法及装置 |
CN111984408A (zh) * | 2020-08-14 | 2020-11-24 | 薛亮 | 基于大数据和边缘计算的数据协同处理方法及边缘云平台 |
US20220210089A1 (en) * | 2020-12-28 | 2022-06-30 | Arteris, Inc. | Queue management system, starvation and latency management system, and methods of use |
-
2024
- 2024-03-05 CN CN202410245098.0A patent/CN117827497A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130003567A1 (en) * | 2011-06-28 | 2013-01-03 | Verisign, Inc. | Parallel processing for multiple instance real-time monitoring |
CN103414594A (zh) * | 2013-08-23 | 2013-11-27 | 烽火通信科技股份有限公司 | 一种用于计费和监控的ip流信息统计方法 |
CN106713185A (zh) * | 2016-12-06 | 2017-05-24 | 瑞斯康达科技发展股份有限公司 | 一种多核cpu的负载均衡方法及装置 |
CN106533961A (zh) * | 2016-12-30 | 2017-03-22 | 中国农业银行股份有限公司 | 一种流量控制方法及装置 |
CN111984408A (zh) * | 2020-08-14 | 2020-11-24 | 薛亮 | 基于大数据和边缘计算的数据协同处理方法及边缘云平台 |
US20220210089A1 (en) * | 2020-12-28 | 2022-06-30 | Arteris, Inc. | Queue management system, starvation and latency management system, and methods of use |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111949568B (zh) | 一种报文处理方法、装置及网络芯片 | |
US7987393B2 (en) | Determining operating context of an executed instruction | |
US8452842B2 (en) | Controlling retention of publications | |
US8537832B2 (en) | Exception detection and thread rescheduling in a multi-core, multi-thread network processor | |
US20050055673A1 (en) | Automatic database diagnostic monitor architecture | |
US8527531B2 (en) | Stream data generating method, stream data generating device and a recording medium storing stream data generating program | |
TW200406672A (en) | Free list and ring data structure management | |
US20050055672A1 (en) | Time model | |
CN111125260A (zh) | 一种基于SQL Server的数据同步方法及系统 | |
US8868889B2 (en) | Instruction breakpoints in a multi-core, multi-thread network communications processor architecture | |
CN111694864B (zh) | 单一进程的流式数据计算执行调度任务并避免数据丢失的方法、系统及计算机设备 | |
CN111143158B (zh) | 一种监控数据实时存储方法、系统、电子设备及存储介质 | |
CN108228322B (zh) | 一种分布式链路跟踪、分析方法及服务器、全局调度器 | |
CN112491979A (zh) | 一种网卡数据包缓存管理方法、装置、终端及存储介质 | |
CN113518130A (zh) | 一种基于多核处理器的分组突发负载均衡方法及系统 | |
CN114490251A (zh) | 日志处理系统、日志处理方法及终端设备 | |
CN109446225A (zh) | 数据缓存方法、装置、计算机设备及存储介质 | |
CN114185885A (zh) | 一种基于列存数据库的流式数据处理方法及系统 | |
US7882337B2 (en) | Method and system for efficient tentative tracing of software in multiprocessors | |
CN117827497A (zh) | 基于国产多核处理器的流量统计并实时排序的方法及装置 | |
US7975183B2 (en) | Dynamic debugging of platform transactions via context aware transactional debug marking | |
US6915516B1 (en) | Apparatus and method for process dispatching between individual processors of a multi-processor system | |
CN117792960B (zh) | 一种基于国产多核处理器的历史流量统计方法及装置 | |
CA2831134A1 (en) | Identification of code synchronization points | |
Rivera et al. | Spin lock killed the performance star |
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 |