一种DPDK睡眠时间控制方法及系统技术方案

技术编号:37444980 阅读:11 留言:0更新日期:2023-05-06 09:16
本发明专利技术公开了一种DPDK睡眠时间控制方法及系统,方法包括:对常见的数据包进行测试,得到数据包的睡眠时间和吞吐量信息;根据吞吐量信息和数据包大小,计算数据包的最大包速率;根据最大包速率和睡眠时间,生成包速率

【技术实现步骤摘要】
一种DPDK睡眠时间控制方法及系统


[0001]本专利技术涉云计算
,具体来说,涉及一种DPDK睡眠时间控制方法及系统。

技术介绍

[0002]随着云计算技术的兴起,通过广域网或局域网将硬件、软件、网络等资源整合在一起共同为用户提供更高质量服务。网络功能虚拟化(Network Functions Virtualization,NFV)通过对传统专有硬件上运行的各类网络服务进行虚拟化,在共享的网络硬件基础上为云计算提供技术支持。从传统的物理网络到虚拟网络的革新,使得越来越多的网络设备基础架构开始逐步向基于通用处理器平台的方向发展。NFV使得网络在变得更加可控制和成本更低的同时,也需要支持大规模用户或应用程序的性能需求,即具备处理海量数据的能力。在对数据处理能力需求提高的同时,网络硬件接口设备也不断更新。目前,10Gbit/s网络广泛应用于各数据中心和运营商网络中,用于连接服务器、交换机和路由器,40Gbit/s到100Gbit/s技术也得以发展。以太网接口速率已扩展至100GE,与此相对比的是大部分服务器CPU主频仍在3GHz以下[1],只有极少数服务器突破了4GHz。
[0003]传统的基于内核的报文处理方式通过中断将报文分发至内核,内核协议栈报文处理完毕后,报文还需要被拷贝到用户空间。当服务器需要接收和处理大规模报文时,内核网络协议栈会产生频繁的中断和内存拷贝,这些开销导致数据包处理速度较慢,也进一步限制了服务器单机处理大规模的报文数据流。
[0004]为了解决这一问题,提出了DPDK(Data Plane Development Kit,数据平面开发套件)高性能分组I/O框架,DPDK这种框架绕过内核网络协议栈,利用零拷贝、批处理和繁忙轮询等来实现对数据包的高速处理。DPDK重载了网卡驱动,将数据包的控制平面和数据平面分离,驱动在收到数据包后不再硬中断通知CPU,而是让数据包通过内核旁路的协议栈绕过了Linux内核协议栈,并通过零拷贝技术存入内存,因此,应用层的程序可以通过DPDK提供的接口读取数据包。这种处理方式节省了 CPU 中断时间、内存拷贝时间,提高了网络I/O的性能。
[0005]由于DPDK一直需要进行轮询操作,使其对CPU时间周期高占有,使线程总在一个无限循环的过程中处理数据包,导致过度使用CPU周期和功耗,睡眠机制的提出使得CPU利用率得到大幅降低。而如何使得DPDK睡眠机制可以动态自适应不同应用场景下的传输速率,在保证通信质量和低CPU利用率下,进一步提升吞吐效率则就成了目前业内亟需解决的问题。

技术实现思路

[0006]针对相关技术中的问题,本专利技术提出一种DPDK睡眠时间控制方法及系统,以解决现有相关技术所存在的上述技术问题。
[0007]本专利技术的技术方案是这样实现的:根据本专利技术的一方面,提供了一种DPDK睡眠时间控制方法。
[0008]该DPDK睡眠时间控制方法,包括:对常见的数据包进行测试,得到数据包的睡眠时间和吞吐量信息;并根据所述吞吐量信息和数据包大小,计算数据包的最大包速率;根据所述最大包速率和所述睡眠时间,生成包速率

睡眠时间数据;根据所述包速率

睡眠时间数据,基于最小二乘法拟合出包速率

睡眠时间乘幂函数,并根据包速率

睡眠时间乘幂函数,计算睡眠时间初始值;根据所述睡眠时间初始值和预定睡眠时间策略,对CPU进行睡眠时间控制。
[0009]其中,常见的数据包包括:64字节数据包、128字节数据包、256字节数据包、512字节数据包和1024字节数据包。
[0010]其中,根据所述最大包速率和所述睡眠时间,生成包速率

睡眠时间数据包括:根据所述最大包速率和所述睡眠时间,采用多折线图方式,绘制最大包速率和睡眠时间折线图;基于所述最大包速率和睡眠时间折线图,将相同睡眠时间所对应的包速率数据进行算术平均处理,得到包速率

睡眠时间数据。
[0011]其中,根据包速率

睡眠时间乘幂函数,计算睡眠时间初始值时的计算公式为:式中,是初始睡眠时间,是接收端的包速率,a为幂函数的系数,k为幂函数的幂。
[0012]其中,所述睡眠时间策略包括:睡眠时间初始值与睡眠时间保护值之差为大于等于100us且小于等于400us,则延长睡眠时间降低CPU功耗;睡眠时间初始值与睡眠时间保护值之差为大于等于400us且小于等于900us,则保障不进入深度睡眠。
[0013]根据本专利技术的另一方面,提供了一种DPDK睡眠时间控制系统。
[0014]该DPDK睡眠时间控制系统,包括:数据预处理模块,用于对常见的数据包进行测试,得到数据包的睡眠时间和吞吐量信息;并根据所述吞吐量信息和数据包大小,计算数据包的最大包速率;包速率睡眠时间计算模块,用于数据根据所述最大包速率和所述睡眠时间,生成包速率

睡眠时间数据;睡眠时间计算模块,用于根据所述包速率

睡眠时间数据,基于最小二乘法拟合出包速率

睡眠时间乘幂函数,并根据包速率

睡眠时间乘幂函数,计算睡眠时间初始值;睡眠控制模块,用于根据所述睡眠时间初始值和预定睡眠时间策略,对CPU进行睡眠时间控制。
[0015]其中,常见的数据包包括:64字节数据包、128字节数据包、256字节数据包、512字节数据包和1024字节数据包。
[0016]其中,所述包速率睡眠时间计算模块包括折线图绘制模块和算术处理模块,折线图绘制模块,用于根据所述最大包速率和所述睡眠时间,采用多折线图方式,绘制最大包速率和睡眠时间折线图;算术处理模块,用于基于所述最大包速率和睡眠时间折线图,将相同睡眠时间所对应的包速率数据进行算术平均处理,得到包速率

睡眠时间数据。
[0017]其中,所述睡眠时间计算模块在根据包速率

睡眠时间乘幂函数,计算睡眠时间初始值时的计算公式为:式中,是初始睡眠时间,是接收端的包速率,
a为幂函数的系数,k为幂函数的幂。
[0018]其中,所述睡眠时间策略包括:睡眠时间初始值与睡眠时间保护值之差为大于等于100us且小于等于400us,则延长睡眠时间降低CPU功耗;睡眠时间初始值与睡眠时间保护值之差为大于等于400us且小于等于900us,则保障不进入深度睡眠。有益效果
[0019]本专利技术通过分析DPDK中睡眠时间

不同数据包大小和传输速率下的包速率的对应关系,通过最小二乘拟合出对应乘幂曲线,并根据乘幂曲线计算睡眠初始值,再根据睡眠初始值和睡眠时间策略,有效的对睡眠时间进行了对应的控制,进而减小了由睡眠时间对数据传输产生的影响;可以有效地应对突发的数据流变化,在短时间内恢复无丢包传输;在不同数据流传输情况下,将CPU利用率维持在很低水平的同时可以动态调整睡眠时间保障传输性能。
附图说明
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种DPDK睡眠时间控制方法,其特征在于,包括:对常见的数据包进行测试,得到数据包的睡眠时间和吞吐量信息;并根据所述吞吐量信息和数据包大小,计算数据包的最大包速率;根据所述最大包速率和所述睡眠时间,生成包速率

睡眠时间数据;根据所述包速率

睡眠时间数据,基于最小二乘法拟合出包速率

睡眠时间乘幂函数,并根据包速率

睡眠时间乘幂函数,计算睡眠时间初始值;根据所述睡眠时间初始值和预定睡眠时间策略,对CPU进行睡眠时间控制。2.根据权利要求1所述的DPDK睡眠时间控制方法,其特征在于,常见的数据包包括:64字节数据包、128字节数据包、256字节数据包、512字节数据包和1024字节数据包。3.根据权利要求1所述的DPDK睡眠时间控制方法,其特征在于,根据所述最大包速率和所述睡眠时间,生成包速率

睡眠时间数据包括:根据所述最大包速率和所述睡眠时间,采用多折线图方式,绘制最大包速率和睡眠时间折线图;基于所述最大包速率和睡眠时间折线图,将相同睡眠时间所对应的包速率数据进行算术平均处理,得到包速率

睡眠时间数据。4.根据权利要求1所述的DPDK睡眠时间控制方法,其特征在于,根据包速率

睡眠时间乘幂函数,计算睡眠时间初始值时的计算公式为:,式中,是初始睡眠时间,是接收端的包速率,a为幂函数的系数,k为幂函数的幂。5.根据权利要求4所述的DPDK睡眠时间控制方法,其特征在于,所述睡眠时间策略包括:睡眠时间初始值与睡眠时间保护值之差为大于等于100us且小于等于400us,则延长睡眠时间降低CPU功耗;睡眠时间初始值与睡眠时间保护值之差为大于等于400us且小于等于900us,则保障不进入深度睡眠。6.一种DPDK睡眠时间控制系统,其特征在于,包括:数据预处理模块,用于对常见...

【专利技术属性】
技术研发人员:林萍萍张娇贺宝磊章云鹏
申请(专利权)人:北京博上网络科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1