[发明专利]一种海量数据多线程并行处理中的负载均衡方法有效
申请号: | 201210315602.7 | 申请日: | 2012-08-31 |
公开(公告)号: | CN102866922A | 公开(公告)日: | 2013-01-09 |
发明(设计)人: | 彭建华;徐立中;石爱业;周惠;郭宇燕;高红民 | 申请(专利权)人: | 河海大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 许方 |
地址: | 210098 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 海量 数据 多线程 并行 处理 中的 负载 均衡 方法 | ||
技术领域
本发明涉及海量数据的多线程并行处理,尤其涉及一种海量数据多线程并行处理中的负载均衡方法,属于计算机网络技术领域。
背景技术
在大规模部署的终端设备接入与海量数据并发处理系统中,系统单位时间内接收处理数据量非常大,系统接收后马上产生一个新的线程,对接收的数据进行处理这种方法,系统并发性效率将会显著降低,这是由于创建线程需要较多系统开销、同时频繁分配、释放系统资源也要花费较多时间,为了尽力减少系统不必要的开销以及计算时间,提高系统并行处理能力,一般采用多线程、线程池的方式进行,通过接收与处理分离的,采用FIFO方式处理数据,也就是先到达的数据先处理。
系统接收数据后,如果随机或简单地对接收数据进行分配,由于线程对计算机时间片的分配以及数据内容的不同,每个数据处理的时间将不一致,随机分配将会造成数据处理线程池有的线程空闲,有的线程数据区中排放大量待处理数据,严重影响系统的性能,影响系统并发处理能力。
发明内容
本发明所要解决的技术问题在于提供一种海量数据多线程并行处理中的负载均衡方法,能够将数据优先分配至当前比较空闲的数据处理线程进行处理,从而显著提高大规模部署的终端设备接入能力与海量数据的并行处理、密集计算的能力。
本发明具体采用以下技术方案:
一种海量数据多线程并行处理中的负载均衡方法,服务端利用多个并行的数据处理线程对接收到的数据进行处理,对于每一个新接收到的数据包,服务端按照以下方法为其分配数据处理线程:
判断是否存在当前待处理数据包个数C为0或者已处理数据包个数n为0的数据处理线程,如是,则将新收到的数据包分配给其中任意一个数据处理线程;如否,则将新收到的数据包分配给相对空闲率最高的数据处理线程,所述数据处理线程的相对空闲率按照以下公式计算:
式中,为相对空闲率;为该数据处理线程当前待处理数据包个数;为该数据处理线程在处理n个数据包后的数据处理效率,其表达式为如下:
其中,n为已处理数据包个数,为该数据处理线程处理第n个数据包所耗费时间。
本发明的线程空闲率由两个因数决定:线程中排队待处理的数据包数以及线程处理数据的效率。通过线程对已处理数据包的时间进行线性平均得到当前线程的数据处理效率,线程中排队待处理的数据包与线程处理效率值的乘积,预测了后续当前线程还要花费多长时间处理完线程中待处理的数据包,这个处理时间越短,则表示后续放入该线程的数据将被更优先处理。同时,该算法计算简单,基本不耗费计算机资源,执行算法的时间只有千分之一微秒不到,即使海量数据分析处理的情况下,对系统性能、资源的影响也可以忽略。因此,该算法具有很强的实际应用价值。
本发明的负载均衡方法根据每个数据处理线程的待处理数据包个数和数据处理效率计算其相对空闲率,并根据相对空闲率对每个数据处理线程进行合理数据分配,能够显著提高系统对海量数据的并行处理、密集计算的能力。
附图说明
图1为服务端多线程并行数据处理的原理示意图;
图2为服务端多线程并行数据处理的流程示意图。
具体实施方式
下面结合附图对本发明的技术方案进行详细说明:
本发明的思路是在对多线程并行处理的数据进行分配时,根据各数据处理线程的相对空闲率来对每个数据处理线程进行合理数据分配,从而提高系统对海量数据的并行处理、密集计算的能力。
图1显示了一个服务端多线程并行数据处理的实例,在该实例中,服务端在进程启动时,开启一个数据接收线程R,并创建包含多个数据处理线程D的线程池,以及一个数据分发线程S,同时开辟一段动态存储区BM,并为线程池中的每一个数据处理线程D开辟一个动态存储区SM和一个初始值为0的计数器C;数据接收线程R只负责接收数据包并将其存入动态存储区BM;数据分发线程S循环读取动态存储区BM中的数据包,并根据线程池中各数据处理线程的相对空闲率将数据包存入相对空闲率最高的数据处理线程的动态存储区SM,存入一个数据包则将该数据处理线程的计数器C加1;数据处理线程D从自身的动态存储区SM中提取数据包进行处理,每处理一个数据包,就将自身的计数器C减1。这样,计数器C的数值就能够动态反映该数据处理线程的待处理数据包数量。
详细的服务端多线程并行数据处理流程如图2所示,包括以下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于河海大学,未经河海大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210315602.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种漏嘴可调式漏斗
- 下一篇:复合滚道的球式回转支承及其加工方法
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置