提高Linux系统应用层数据处理性能的方法
【专利摘要】本发明提供了一种实现系统处理性能随核心CPU数量正比增加的提高Linux系统应用层数据处理性能的方法,包括如下步骤:(1)通过网卡接收数据包;(2)通过多核并行控制器,指定系统中的均衡CPU专门用于数据包均衡分配,多核并行控制器会根据各核心CPU的负载情况,通过均衡CPU的调度将数据包均衡的分配到各个核心CPU上;(3)将TCP协议栈移到用户空间,并改为多个并行的非共享式TCP协议栈,每一个协议栈对应一个核心CPU核心;(4)数据经过各TCP协议栈处理之后,被送入应用层相应的功能模块进行后续内容过滤处理。
【专利说明】 提高Linux系统应用层数据处理性能的方法
【技术领域】
[0001]本发明涉及一种数据处理方法,尤其是一种提高Linux系统应用层数据处理性能的方法。
【背景技术】
[0002]标准的Linux操作系统和目前市面一些经过简单优化处理的系统,在操作系统应用层可以进行多线程的并行处理,但是基于操作系统内核层的TCP协议栈存在共享锁,CPU在进行事务处理时,要等待TCP共享锁的释放,因此并行度受限于TCP协议栈共享锁,并不能达到完全的并行事务处理。因此由于系统内核的局限导致数据处理出现系统等待、并行度下降的情况,这样就会引起上层数据还原和过滤性能的大幅衰减。
【发明内容】
[0003]本发明提供了一种实现系统处理性能随核心CPU数量正比增加的提高Linux系统应用层数据处理性能的方法。
[0004]实现本发明目的的提高Linux系统应用层数据处理性能的方法,包括如下步骤:
[0005](I)通过网卡接收数据包;
[0006](2)通过多核并行控制器,指定系统中的均衡CPU专门用于数据包均衡分配,多核并行控制器会根据各核心CPU的负载情况,通过均衡CPU的调度将数据包均衡的分配到各个核心CPU上;
[0007](3)将TCP协议栈移到用户空间,并改为多个并行的非共享式TCP协议栈,每一个协议栈对应一个核心CPU核心;
[0008](4)数据经过各TCP协议栈处理之后,被送入应用层相应的功能模块进行后续内容过滤处理。
[0009]本发明的提高Linux系统应用层数据处理性能的方法的有益效果如下:
[0010]本发明的提高Linux系统应用层数据处理性能的方法,充分的利用现有主流X86多核硬件平台中多CPU、多处理核心的优势,使数据均衡的分配到各个核心CPU上,充分发挥各核心CPU的处理能力;同时通过协议栈的修改,实现协议栈与核心CPU的一一对应,解除共享锁的限制,从而根本上实现和数据收发和处理的完全并行,达到系统处理性能随核心CPU数量正比增加的目的。
【具体实施方式】
[0011]本发明的提高Linux系统应用层数据处理性能的方法,包括如下步骤:
[0012](I)通过网卡接收数据包;
[0013](2)通过多核并行控制器,指定系统中的均衡CPU专门用于数据包均衡分配,多核并行控制器会根据各核心CPU的负载情况,通过均衡CPU的调度将数据包均衡的分配到各个核心CPU上;[0014](3)将TCP协议栈移到用户空间,并改为多个并行的非共享式TCP协议栈,每一个协议栈对应一个核心CPU核心;
[0015](4)数据经过各TCP协议栈处理之后,被送入应用层相应的功能模块进行后续内容过滤处理。
[0016]通过上述的改进可以实现从数据包接到还原处理的全路径的并行处理,从而达到提闻系统处理性能的目的。
[0017]上面所述的实施例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神前提下,本领域普通工程技术人员对本发明技术方案做出的各种变形和改进,均应落入本发明的权利要求书确定的保护范围内。
【权利要求】
1.提高Linux系统应用层数据处理性能的方法,包括如下步骤: (1)通过网卡接收数据包; (2)通过多核并行控制器,指定系统中的均衡CPU专门用于数据包均衡分配,多核并行控制器会根据各核心CPU的负载情况,通过均衡CPU的调度将数据包均衡的分配到各个核心CPU上; (3)将TCP协议栈移到用户空间,并改为多个并行的非共享式TCP协议栈,每一个协议栈对应一个核心CPU核心; (4)数据经过各TCP协议栈处理之后,被送入应用层相应的功能模块进行后续内容过滤处理。·
【文档编号】H04L12/803GK103853617SQ201410070157
【公开日】2014年6月11日 申请日期:2014年2月28日 优先权日:2014年2月28日
【发明者】刘嵩, 马琳, 刘鹏, 房潇 申请人:中国人民解放军91655部队