【技术实现步骤摘要】
一种网络收包模式自动调节方法
本专利技术属于计算机程序运行领域,具体地说,涉及一种网络收包模式自动调节方法。
技术介绍
随着通用处理器性能的提升,云计算技术的兴起,越来越多的网络设备逐步转向通用处理器软件实现。在带来灵活性和低成本的同时,基于内核中断的软件收包处理方式逐渐成为性能瓶颈。究其原因,当网络设备收到大量网络报文时,中断会频繁发生,频繁打断报文处理逻辑的执行,使得大量CPU处理时间消耗在上下文切换上。为了解决中断收包性能较低的问题,出现了一些基于忙等轮询模式的高性能网络解决方案,例如PF_RING和DPDK。忙等轮询模式避免了频繁中断引起的CPU开销,在网络负载很高时,使CPU获得更高的网络报文处理能力。但是,轮询模式也存在问题,在网络负载不高时,忙等轮询程序仍会持续占用CPU,持续访问空的收包队列,CPU不能处理其他计算任务,造成整机性能下降,功耗上升。有的技术方案试图结合中断和轮询方式,以期获得两种模式的优点。例如,Linux内核的NAPI网络驱动程序,允许在一次中断后执行多次轮询收包,轮询的次数和轮询的时间间隔可配置。本文称这种模式为中断批处理模式。使用这种方式,可以通过轮询次数和轮询间隔的配置,适应更广的网络负载场景。但是,中断批处理模式仍缺少一种根据负载自动调整轮询间隔和次数的机制,导致其轮询调整不够及时,不能获得最好的CPU和网络性能平衡。网络设备的收包负载情况会随时间发生变化,而目前的网络设备软件收包方案,收包模式不够灵活,在网络负载变化时不能及时调整收包模式,导致网络IO性能不 ...
【技术保护点】
1.一种网络收包模式自动调节方法,其特征在于,根据收包处理线程的负载,也就是收包处理线程的收包处理速率,设定四种收包处理模式:完全中断模式、中断批处理模式、间隔轮询模式、忙等轮询模式;并设置收包调度程序同时对多个收包处理线程的模式进行切换。/n
【技术特征摘要】
1.一种网络收包模式自动调节方法,其特征在于,根据收包处理线程的负载,也就是收包处理线程的收包处理速率,设定四种收包处理模式:完全中断模式、中断批处理模式、间隔轮询模式、忙等轮询模式;并设置收包调度程序同时对多个收包处理线程的模式进行切换。
2.如权利要求1所述的一种网络收包模式自动调节方法,其特征在于,给收包处理线程的四个模式分别设定处理负载的范围;对于收包处理线程的模式切换,具体操作如下:
(1)当处于完全中断模式的收包处理线程的负载超过完全中断模式所设定的范围时,由收包调度程序将收包处理线程的模式从完全中断模式切换为中断批处理模式;
(2)当处于中断批处理模式的收包处理线程的负载超过中断批处理模式所设定的范围时,由收包调度程序将收包处理线程的模式从中断批处理模式切换为间隔轮询模式;当处于中断批处理模式的收包处理线程的负载低于中断批处理模式所设定的范围时,由收包调度程序将收包处理线程的模式从中断批处理模式切换为完全中断模式;
(3)当处于间隔轮询模式的收包处理线程的负载超过间隔轮询模式所设定的范围时,由收包调度程序将收包处理线程的模式从间隔轮询模式切换为忙等轮询模式;当处于间隔轮询模式的收包处理线程的负载低于间隔轮询模式所设定的范围时,由收包调度程序将收包处理线程的模式从间隔轮询模式切换为中断批处理模式;
(4)当处于忙等轮询模式的收包处理线程的负载低于完全中断模式所设定的范围时,由收包调度程序将收包处理线程的模式从忙等轮询模式切换为间隔轮询模式;
除此以外,还为收包处理线程设定切换模式的最短周期,所述收包处理线程只有在一个收包模式中运行超过最短周期才能进行切换。
3.如权利要求1所述的一种网络收包模式自动调节方法,其特征在于,对于所述中断批处理模式,设定中断条件参数N;所述中断条件参数N为中断批处理模式每次中断后收包进程需要处理的报文数量,为实际负载与系统调度周期的乘积;由收包调度程序将中断条件参数N写入内存中,在收包处理进程进行收包处理时,收包调度程序查询并使用中断条件参数N。
4.如权利要求1所述的一种网络收包模式自动调节方法,其特征在于,对于所述间隔轮询模式,设定间断轮询条件参数T,所述间断轮询条件参数T为收包处理线程每次处理完网卡接收队列所有报文后需要主动睡眠等待的时间间隔。
5.如权利要求2所述的一种网络收包模式自动调节方法,其特征在于,所述收包调度程序对收包处理线程进行模式切换的具体流程为:
(1)首先初始化调度定时器;
(2)然后初始化统计计时器;
(3)根据收包处理线程的初始模式启动收包线程;
(4)然后开始周期性地执行收包调度,即切换收包线程处理线程的...
【专利技术属性】
技术研发人员:刘佳,范渊,吴永越,郑学新,刘韬,
申请(专利权)人:成都安恒信息技术有限公司,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。