[发明专利]一种基于DPDK的流量动态负载均衡方法有效
申请号: | 201710599012.4 | 申请日: | 2017-07-20 |
公开(公告)号: | CN107196870B | 公开(公告)日: | 2021-07-20 |
发明(设计)人: | 李城龙;朱佳伟;刘培朋;余翔湛;李凯;叶麟;刘立坤;张宏莉;史建焘;于海宁;胡阳;赵卫晨;路遥 | 申请(专利权)人: | 哈尔滨工业大学;国家计算机网络与信息安全管理中心 |
主分类号: | H04L12/803 | 分类号: | H04L12/803;H04L12/801;H04L12/26 |
代理公司: | 哈尔滨市伟晨专利代理事务所(普通合伙) 23209 | 代理人: | 张伟 |
地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 dpdk 流量 动态 负载 均衡 方法 | ||
1.一种基于DPDK的流量动态负载均衡方法,其特征在于,对称RSS技术与多重Hash计算结合,通过对称RSS技术使得在网卡驱动开启RSS功能后相同连接的双向数据报文能够分配到多核处理器的同一个处理核心中;采用Pktgen对单位时间用来处理接收数据报文的处理核心的使用率进行统计,并对一个时间段的所述处理核心的使用率计算平均值,通过比较多核处理器各个处理核心的使用率来对负载均衡度做一个衡量,采用负载均衡度对多核处理器的负载进行评估;具体步骤包括:
步骤a、建立Hash表1和Hash表2,用来分别存储一个连接与CPU不同处理核心之间的映射关系;
步骤b、在捕获到数据包后,输入数据报文中的五元组信息以及默认的Hash Key,分别通过Hash1()以及Hash2()计算得到Hash结果,根据两次Hash计算得到的Hash结果进行Hash表1以及Hash表2查找,判断两次Hash结果与处理核心是否存在映射关系,如果:
是,将数据包分配到对应的处理核心中;
否,说明数据包属于一条新连接,则对当前多核处理器的整体负载均衡度进行计算;
其中,在步骤b中输入的Hash Key值如下:static uint8_t rss_intel_key[40]={0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,0x6D,0x5A,0x6D,0x5A};
步骤c、判断当前多核处理器的整体负载均衡度是否超出阈值,如果:
否,说明目前系统负载均衡,根据Hash1()的Hash结果在Hash表1中建立映射关系,将数据包分配到对应的处理核心中,
是,说明目前系统负载不均衡,剔除过载严重的处理核心;
步骤d、动态更新Hash2()的所有Hash结果与处理核心的映射关系,数据包根据Hash2()的Hash结果在Hash表2中建立映射关系,并将数据包分配到对应的处理核心中。
2.根据权利要求1所述的一种基于DPDK的流量动态负载均衡方法,其特征在于,在步骤b中所述的数据包分配具体为:
每个I/O接收逻辑核和工作逻辑核对之间通过专用的“生产者—消费者”Ring环形队列进行连接;
每个I/O接收逻辑核从指定的Ring环形队列接收报文,然后分发到工作线程,每个I/O接收逻辑核与任何一个工作线程进行通信;
每个工作逻辑核从其对应的Ring环形队列读取报文,将这些报文拆分,并按照DPDK提供的LPM表的转发逻辑将报文被转发到网卡口的输出Ring环形队列;每个工作逻辑核和NIC_TX_Port之间创建有Ring环形队列,由每个I/O发送逻辑核处理网卡端口上的Ring环形队列中的数据报文。
3.根据权利要求1所述的一种基于DPDK的流量动态负载均衡方法,其特征在于,所述步骤b中负载均衡度的计算公式为:
Ri(t)表示在时刻t多核处理器的第i个核心的使用率,n为多核处理器的核心的数量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学;国家计算机网络与信息安全管理中心,未经哈尔滨工业大学;国家计算机网络与信息安全管理中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710599012.4/1.html,转载请声明来源钻瓜专利网。