一种大型接收卸载功能的设置方法和装置制造方法及图纸

技术编号:20978316 阅读:34 留言:0更新日期:2019-04-29 18:39
本申请公开了一种大型接收卸载功能的设置方法和装置。该方法包括:确定接收队列的大型接收卸载LRO功能的启停信息,该启停信息用于指示开启或停止该接收队列的LRO功能;根据该启停信息,设置该接收队列的LRO功能,以此提高系统的整体性能。

A Setting Method and Device for Large Receiving and Unloading Function

This application discloses a method and device for setting up a large receiving and unloading function. The method includes: determining the start and stop information of large receiving and unloading LRO function of receiving queue, which is used to indicate the LRO function of opening or stopping the receiving queue, and setting the LRO function of receiving queue according to the start and stop information, so as to improve the overall performance of the system.

【技术实现步骤摘要】
一种大型接收卸载功能的设置方法和装置
本申请涉及通信
,尤其涉及一种大型接收卸载(largereceiveoffload,LRO)功能的设置方法和装置。
技术介绍
LRO是一种卸载技术,由网卡(networkinterfacecard,NIC)实现,例如,将传输控制协议(TransmissionControlProtocol,TCP)报文切片(segment)的聚合处理过程由处理器卸载到网卡。具体的,当网卡开启或停止LRO功能时,所有接收队列同时开启或停止该功能。当网卡开启LRO功能时,由网卡将接收到的属于同一数据流的TCP报文切片聚合成一个TCP报文或一个大的TCP报文切片。以网卡驱动所在的服务器采用的操作系统是Linux操作系统为例,网卡驱动可以将聚合得到的TCP报文或大的TCP报文切片转换成套接字缓存(socketbuffer,SKB)结构的数据,然后,将SKB结构的数据发送给处理器,再由处理器完成协议栈(如TCP/IP协议栈)的后续处理过程。这样,不需要由处理器执行报文切片的聚合行为以及SKB结构的转换操作,减少处理器的处理开销。然而,如果聚合效果不好,则开启LRO功能后,会因网卡执行TCP报文切片聚合而导致TCP报文的处理时间延长。因此,如何设置LRO功能的启停从而提高系统的整体性能,成为亟待解决的技术问题。
技术实现思路
本申请提供了一种LRO功能的设置方法和装置,有助于提高系统的整体性能。第一方面,本申请提供了一种LRO功能的设置方法,该方法可以包括:确定接收队列的LRO功能的启停信息,该启停信息用于指示开启或停止该接收队列的LRO功能;根据该启停信息,设置该接收队列的LRO功能。具体的,当该启停信息用于表示开启该接收队列的LRO功能时,开启该接收队列的LRO功能。当该启停信息用于表示停止该接收队列的LRO功能时,停止该接收队列的LRO功能。该技术方案,是基于接收队列粒度设置LRO功能的,这样,通过设置合理的开启或停止接收队列的LRO功能的条件,有助于平衡报文切片的聚合效果与报文切片的处理时长,从而提升系统的处理效率和整体性能。其中,开启接收队列的LRO功能,包括:开启对该接收队列中的属于同一数据流的报文切片进行聚合。可以理解的是,报文切片是否能够进行聚合,还需要看属于同一数据流的报文切片是否满足聚合条件。可选地,如果接收队列中的连续的多个报文切片属于同一数据流,且序号连续,则该多个报文切片满足聚合条件,否则,该多个报文切片不满足聚合条件。在一种可能的实现方式中,确定接收队列的LRO功能的启停信息,包括:在该接收队列的LRO功能开启的情况下,统计该接收队列的聚合过程中断的概率;其中,针对该接收队列执行LRO功能后得到的目标对象包括:该接收队列中的报文、该接收队列中的不能参与聚合的报文切片、和/或该接收队列中的多个报文切片聚合后得到的报文切片或报文,如果一个该目标对象是报文切片、且不是所属报文中的最后一个报文切片、且长度小于或等于第一阈值,则该接收队列的聚合过程中断一次;当该接收队列的聚合过程中断的概率大于或等于第二阈值时,确定该启停信息用于指示停止该接收队列的LRO功能。当一个接收队列的聚合过程中断的概率大于或等于第二阈值时,可以认为该接收队列的聚合过程频繁中断,进而可以推测出该接收队列中的属于多个数据流的报文切片之间交织严重。该情况下,由于中断次数较多,可能出现聚合的报文切片数量较少,如果继续针对该接收队列执行LRO功能,不能较好的发挥执行LRO功能所带来的降低CPU占用率的效果,反而会因执行LRO功能,网卡需要逐个判断接收的报文切片是否满足聚合条件而导致对数据的处理速度变慢,从而影响系统的整体性能。因此,此时,可以停止该接收队列的LRO功能。可以理解的是,目标对象具体包括哪一种报文和/或报文切片是根据该接收队列中的对象确定的。可选地,第一阈值和第二阈值中的至少一个是可配置的。第一阈值可以根据接收端服务器的网卡的聚合能力确定,第二阈值可以根据接收队列中报文切片的聚合效果和接收端服务器的网卡处理报文/报文切片的时长来确定。在一种可能的实现方式中,统计该接收队列的聚合过程中断的概率,包括:统计第一预设时间段内该接收队列的聚合过程中断的次数,以及第一预设时间段内针对该接收队列执行LRO功能后得到的目标对象的数量;根据第一预设时间段内该接收队列的聚合过程中断的次数(标记为x),以及第一预设时间段内针对该接收队列执行LRO功能后得到的目标对象的数量(标记为y),确定该接收队列的聚合过程中断的概率。例如该概率可以根据x除以y求得。当然本申请实施例不限于此。在一种可能的实现方式中,该方法还包括:从多种阈值组中选择一个阈值组,每个阈值组包括一个第三阈值和一个第四阈值;将所选择的阈值组包括的第三阈值作为所述第一阈值,将所选择的阈值组包括的第四阈值作为所述第二阈值。这样,有助于实现为不同待处理业务(即接收队列中的对象所属的业务),选择不同的阈值,从而有助于提高系统的整体性能。在一种可能的实现方式中,确定接收队列的LRO功能的启停信息,包括:在该接收队列的LRO功能停止的情况下,统计该接收队列中的对象所属的数据流是多流的概率,对象包括报文和/或报文切片;如果统计的该接收队列中的对象所属的数据流是多流的概率小于或等于第五阈值,则确定该启停信息用于指示开启该接收队列的LRO功能。可选地,第五阈值是可配置的。当一个接收队列中的对象所属的数据流是多流的概率小于或等于第五阈值时,可以认为该接收队列的多个数据流之间交织不严重。该情况下,针对该接收队列执行LRO功能,对属于同一数据流的报文切片进行聚合时中断概率较低,可能出现聚合的报文切片数量较多,可以很好地发挥执行LRO功能带来的降低CPU占用率的效果,从而提高系统的整体性能。在一种可能的实现方式中,统计该接收队列中的对象所属的数据流是多流的概率,包括:统计第二预设时间段内该接收队列中的对象所属的数据流是多流的次数和第二预设时间段内该接收队列的对象的数量;其中,如果该接收队列中的相邻两个对象的哈希值不同,则该接收队列的对象所属的数据流是多流的次数加1;根据第二预设时间段内该接收队列中的对象所属的数据流是多流的次数(标记为c)和第二预设时间段内该接收队列的对象的数量(标记为d),确定该接收队列中的对象所属的数据流是多流的概率。例如,该概率可以根据c除以d求得,当然本申请实施例不限于此。在一种可能的实现方式中,该方法还可以包括:从多个阈值中选择一个阈值,并将所选择的阈值作为所述第五阈值。这样,有助于实现为不同待处理业务(即接收队列中的对象所属的业务),选择不同的阈值,从而有助于提高系统的整体性能。上述第一方面或上述第一方面的任一种可能的实现方式的执行主体可以是接收端服务器,或者是接收端服务器的网卡。其中,接收端服务器是指用于接收数据(包括报文和报文切片)的服务器。对于一个服务器来说,当该服务器用于发送数据时,该服务器被称为是发送端服务器,当该服务器用于接收数据时,该服务器被称为是接收端服务器。第二方面,本申请提供了一种大型接收卸载LRO功能的设置装置,所述装置包括用于执行第一方面或第一方面任一种可能实现方式中的LRO功能的设置方法的各个模块。第三方面,本申请本文档来自技高网...

【技术保护点】
1.一种大型接收卸载LRO功能的设置方法,其特征在于,所述方法包括:确定接收队列的LRO功能的启停信息,所述启停信息用于指示开启或停止所述接收队列的LRO功能;根据所述启停信息,设置所述接收队列的LRO功能。

【技术特征摘要】
1.一种大型接收卸载LRO功能的设置方法,其特征在于,所述方法包括:确定接收队列的LRO功能的启停信息,所述启停信息用于指示开启或停止所述接收队列的LRO功能;根据所述启停信息,设置所述接收队列的LRO功能。2.根据权利要求1所述的方法,其特征在于,所述根据所述启停信息,设置所述接收队列的LRO功能,包括:根据所述启停信息,开启所述接收队列的LRO功能;其中,所述开启所述接收队列的LRO功能,包括:开启对所述接收队列中的属于同一数据流的多个报文切片进行聚合。3.根据权利要求1或2所述的方法,其特征在于,所述确定接收队列的LRO功能的启停信息,包括:在所述接收队列的LRO功能开启的情况下,统计所述接收队列的聚合过程中断的概率;其中,针对所述接收队列执行LRO功能后得到的目标对象包括:所述接收队列中的报文、所述接收队列中的不能参与聚合的报文切片、和/或所述接收队列中的多个报文切片聚合后得到的报文切片或报文,如果一个所述目标对象是报文切片、且不是所属报文中的最后一个报文切片、且长度小于或等于第一阈值,则所述接收队列的聚合过程中断一次;当所述接收队列的聚合过程中断的概率大于或等于第二阈值时,确定所述启停信息用于指示停止所述接收队列的LRO功能。4.根据权利要求3所述的方法,其特征在于,所述统计所述接收队列的聚合过程中断的概率,包括:统计第一预设时间段内所述接收队列的聚合过程中断的次数,以及所述第一预设时间段内针对所述接收队列执行LRO功能后得到的目标对象的数量;根据所述第一预设时间段内所述接收队列的聚合过程中断的次数,以及所述第一预设时间段内针对所述接收队列执行LRO功能后得到的目标对象的数量,确定所述接收队列的聚合过程中断的概率。5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:从多种阈值组中选择一个阈值组,每个阈值组包括一个第三阈值和一个第四阈值;将所选择的阈值组包括的第三阈值作为所述第一阈值,将所选择的阈值组包括的第四阈值作为所述第二阈值。6.根据权利要求1所述的方法,其特征在于,所述确定接收队列的LRO功能的启停信息,包括:在所述接收队列的LRO功能停止的情况下,统计所述接收队列中的对象所属的数据流是多流的概率,所述对象包括报文和/或报文切片;如果统计的所述接收队列中的对象所属的数据流是多流的概率小于或等于第五阈值,则确定所述启停信息用于指示开启所述接收队列的LRO功能。7.根据权利要求6所述的方法,其特征在于,所述统计所述接收队列中的对象所属的数据流是多流的概率,包括:统计所述第二预设时间段内所述接收队列中的对象所属的数据流是多流的次数和所述第二预设时间段内所述接收队列的对象的数量;其中,如果所述接收队列中的相邻两个对象的哈希值不同,则所述接收队列的对象所属的数据流是多流的次数加1;根据所述第二预设时间段内所述接收队列中的对象所属的数据流是多流的次数和所述第二预设时间段内所述接收队列的对象的数量,确定所述接收队列中的对象所属的数据流是多流的概率。8.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:从多个阈值中选择一个阈值,并将所选择的阈值作为所述第五阈值。9.一种大型接收卸载LRO功能的设置装置,其特征在于,所述装置包括:确定单元,用于确定接收队列的L...

【专利技术属性】
技术研发人员:曲会春徐成程韬武雪平
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1