[发明专利]一种网卡的线程级动态均衡调度方法在审
申请号: | 201710442620.4 | 申请日: | 2017-06-13 |
公开(公告)号: | CN107317759A | 公开(公告)日: | 2017-11-03 |
发明(设计)人: | 张家琦;贺欣;邹昕;王啸;王子厚;汪立东;李政;王维晟;薛春晖;张震;刘培朋;何清林;马秀娟 | 申请(专利权)人: | 国家计算机网络与信息安全管理中心 |
主分类号: | H04L12/801 | 分类号: | H04L12/801;H04L12/863 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙)11200 | 代理人: | 司立彬 |
地址: | 100029*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 网卡 线程 动态 均衡 调度 方法 | ||
技术领域
本发明属于INTERNET技术领域,涉及一种网卡的均衡调度方法,具体涉及一种网卡线程级动态均衡调度技术实现方法。
背景技术
网卡一般是部署多个线程处理同一类业务报文,大都只通过对报文特征字段提取,并以此计算数据报文的HASH值,然后按照HASH值上送至不同的收包缓存中。这种方式优点是简单高效,但是暴露出的问题也很明显,首先服务器CPU性能的消耗因业务复杂程度而存在差异;其次网卡上每个线程的缓存队列利用率并不均匀;最后网卡并不主动感知业务线程的状态,当线程的吞吐量达到极限或线程异常时,将会造成数据的丢失。
基于这种现状,本发明现提出一种基于线程的动态负载均衡调度技术,以最大程度缓解线程级负载不均导致的丢包问题。
发明内容
针对现有技术中存在的技术问题,本发明的目的在于提供一种网卡的线程级动态均衡调度方法。
本发明的技术方案为:
一种网卡的线程级动态均衡调度方法,其步骤为:
1)在网卡中设置一流表;流表中的每个条目包括键值和结果两部分,其中键值为业务流中业务报文的五元组或五元组中的若干设定信息,结果为业务流的去向,即线程的缓存队列号;
2)网卡定时去检测各业务处理线程的缓存队列利用率,将线程的缓存队列利用率超过设定阈值的线程的状态设置为已满,否则设置为可用;
3)将状态为可用的线程构建一线程队列;
4)网卡对收到的每一业务流,根据该业务流的键值查找所述流表,如果流表中有匹配的条目,则将该业务流的业务报文发送到该条目中缓存队列号对应的缓存队列;如果没有匹配的条目,则从所述线程队列中选取一线程,然后根据所选线程的缓存队列号和该业务流的键值生成所述流表的一条目保存到所述流表中,然后将该业务流的业务报文发送到所选线程的缓存队列;
5)当一业务流结束或者超时时,网卡删除所述流表中该业务流对应的条目。
所述网卡通过哈希方式在所述线程队列中选取一线程。
所述五元组包括业务报文的协议号、源IP地址、目的IP地址、源端口和目的端口。
如果业务报文中没有端口号,则所述键值为业务报文的源IP地址和目的IP地址信息。
使用线程的缓存队列利用率来标识每一个状态可用的线程的处理能力;选取缓存队列利用率低的线程构建所述线程队列。
要达到动态调度流量的目的,需要实现以下两个关键技术:
1)网卡需要感知主机业务线程状态,目的是为网卡的流量调度提供依据;网卡一般是部署多个线程处理同一类业务报文,通过提取数据报文特征字段,并以此计算数据报文的HASH值,然后按照HASH值上送至不同线程的缓存队列中。
2)网卡端流量的调度,基于流表对各个线程的缓存队列进行调度。
有鉴于此,本发明主要内容如下所示:
线程状态维护:网卡需要定时(时间周期可支持配置)获取每个线程的缓存队列的利用率,并维护线程状态。
流表维护:报文中没有端口号,则根据报文中源IP地址+目的IP地址;如果报文中带有端口信息,则根据报文中协议号+报文中源IP地址+报文中目的IP地址+报文中源端口号+报文中目的端口号建立流表。
线程的缓存队列调度:调度方式基于流表,在保证同源同宿前提下,使各队列利用率更加均衡。
本发明包括如下步骤:
a、主动感知模块,网卡定时去检测主机业务线程的状态,并维护这些状态信息,为后续调度提供依据。每一类业务报文分配若干线程,由于业务复杂程度不同,处理同一类业务报文的各线程的缓存队列利用率并不相同。
a1、线程的状态分为两种:分别是可用和已满,线程的缓存队列利用率超过阈值的线程状态为已满状态;未超过的线程状态为可用状态。
a2、网卡定时获取每个线程的缓存队列利用率,将获取到的利用率与阈值(用户可配置)比较并得到线程的状态,将该状态更新为该线程的最新状态。
a3、选取若干状态为可用的线程,构建一线程队列。本发明使用每个线程的缓存队列利用率来标识每一个状态可用的线程的处理能力。缓存队列利用率越低的线程则处理能力越强。在构成可用的线程队列时,缓存队列利用率越低的线程则所占比重高,反之亦然。
b、均衡调度模块,基于流表的调度策略使线程间能够更加均衡,整体利用率更高。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国家计算机网络与信息安全管理中心,未经国家计算机网络与信息安全管理中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710442620.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种栀子保健茶及其制备方法和应用
- 下一篇:一种治疗膝关节滑膜炎的药物