网卡中断的迁移方法、电子设备及计算机可读存储介质与流程

摘要: 本公开涉及计算机网络领域,更具体地,涉及网卡中断的迁移方法、电子设备及计算机可读存储介质。背景技术:1、网卡中断绑核是指将网卡中断请求绑定到某个处理器核心(例如...
网卡中断的迁移方法、电子设备及计算机可读存储介质与流程

本公开涉及计算机网络领域,更具体地,涉及网卡中断的迁移方法、电子设备及计算机可读存储介质。

背景技术:

1、网卡中断绑核是指将网卡中断请求绑定到某个处理器核心(例如,中央处理单元(cpu))上,以提高计算机网络系统的性能和响应速度。绑定的处理器核心可以用于处理来自该网卡的数据。例如,当网络数据包到达该网卡时,该网卡会将中断请求发送给该处理器核心,以通知该处理器核心处理到达的数据包。网卡中断绑核是计算机网络中非常有效的优化方案。

2、网卡中断绑核可以在包括多个处理器的系统(例如,多处理器系统)中实现。多处理器系统中可以包括一个或多个处理器节点。每个处理器节点可以包括各自的一个或多个处理器核心以及内存。每个处理器节点中的处理器核心能够访问本地内存,进而通过提供更快的本地内存访问来提高系统性能。此外,每个处理器节点中的处理器核心也可以跨处理器节点访问其他处理器节点中的内存。然而,这样的跨处理器节点的交互通常会产生时延。因此,在进行中断绑核操作时,期望减少跨处理器节点访问所引起的时延。

技术实现思路

1、本公开的提供了一种用于网卡中断的迁移方法、电子设备以及计算机可读程序介质,用于实现对网卡中断的迁移,能够减少跨处理器节点访问所引起的时延,实现对网络的显著优化,并且能够提升系统的整体性能。

2、在本公开的第一方面,提供了一种用于网卡中断的迁移方法,该方法包括:在具有多个处理器节点的系统中,获取目标线程的运行节点;获取与目标线程相关联的目标中断,其中目标中断绑定在源绑定节点上;以及将目标中断从源绑定节点迁移至目标绑定节点,其中目标绑定节点包括该运行节点或者与该运行节点相邻的节点。

3、如此,在本公开的实现方式中,将目标中断迁移到与该目标中断相关联的网络任务所在的处理器节点或相邻的处理器节点(即,目标绑定节点)上。当有数据包到达时,目标中断可以通知所绑定的处理器核心处理到达的数据包。由于响应中断的处理器核心与接收数据包的网络任务在相同或相邻的处理器节点上,由此,能够减少处理器核心跨处理器节点访问内存所引起的时延,实现对网络的显著优化,并且能够提升系统的整体性能。此外,本公开的实现方式还能够实现网卡中断绑核的动态调整,更好地适应复杂业务场景,提升网卡中断绑核的优化效率。

4、在第一方面的一些实现方式中,将目标中断从源绑定节点迁移至目标绑定节点包括:响应于该运行节点非满负载,将目标中断从源绑定节点迁移至该运行节点;或者响应于该运行节点满负载,将目标中断从所述源绑定节点迁移至与该运行节点相邻的节点。

5、在第一方面的一些实现方式中,该方法还包括:从目标绑定节点中选择具有最低负载的处理器核心;以及将中断绑定至所选择的处理器核心。

6、在第一方面的一些实现方式中,该方法还包括:确定与目标线程相关联的关联网卡队列,其中目标线程经由该关联网卡队列在该运行节点上接收数据包。

7、在第一方面的一些实现方式中,确定与目标线程相关联的关联网卡队列包括:获取目标线程的第一网络信息,其中第一网络信息中包括以下项中的至少一项:目标线程运行所在的运行节点、与目标线程相关联的第一套接字地址、以及与目标线程相关联的至少一个第一时间戳;获取与多个网卡队列分别相关联的多组第二网络信息,多组第二网络信息中的每组第二网络信息包括相应的队列号、相应的第二套接字地址和相应的至少一个第二时间戳;以及基于目标线程的第一网络信息和多组第二网络信息,确定与目标线程相关联的关联网卡队列。

8、在第一方面的一些实现方式中,其中与目标线程相关联的第一套接字地址与该关联网卡队列的第二套接字地址相同。

9、在第一方面的一些实现方式中,其中目标线程为第一线程,该运行节点为第一运行节点,与目标线程相关联的该关联网卡队列还与第二线程相关联,第二线程运行在第二运行节点上,并且其中,第一线程经由该关联网卡队列在第一运行节点上接收数据包的次数大于第二线程经由该关联网卡队列在第二运行节点上接收数据包的次数。

10、在第一方面的一些实现方式中,该方法还包括:获取中断号与队列号的映射关系,其中映射关系指示多个中断中的每个中断的中断号与多个网卡队列中的每个网卡队列的队列号的映射。

11、在第一方面的一些实现方式中,其中获取与目标线程相关联的目标中断包括:基于映射关系,从多个中断当中选择映射到该关联网卡队列的中断;以及将选择的中断确定为与目标线程相关联的目标中断。

12、在第一方面的一些实现方式中,该方法还包括:确定目标中断在源绑定节点上接收数据包的第一次数。

13、在第一方面的一些实现方式中,确定第一次数包括:确定目标线程在该运行节点上接收数据包的第二次数;以及将第二次数确定为目标中断在源绑定节点上接收数据包的第一次数。

14、在第一方面的一些实现方式中,该方法还包括:响应于第一次数不小于阈值,将与目标线程相关联的目标中断迁移至该运行节点或者与该运行节点相邻的节点。

15、在第一方面的一些实现方式中,该系统包括非一致性内存访问(numa)系统。

16、在本公开的第二方面,提供了一种用于迁移网卡中断的装置,该装置可以包括:第一获取模块,被配置为在具有多个处理器节点的系统中,获取目标线程的运行节点;第二获取模块,被配置为获取与目标线程相关联的目标中断,其中目标中断绑定在源绑定节点上;以及迁移模块,被配置为将目标中断从源绑定节点迁移至目标绑定节点,其中目标绑定节点包括该运行节点或者与该运行节点相邻的节点。

17、如此,在本公开的实现方式中,将目标中断迁移到与该目标中断相关联的网络任务所在的处理器节点或相邻的处理器节点(即,目标绑定节点)上。当有数据包到达时,目标中断可以通知所绑定的处理器核心处理到达的数据包。由于响应中断的处理器核心与接收数据包的网络任务在相同或相邻的处理器节点上,由此,能够减少处理器核心跨处理器节点访问内存所引起的时延,实现对网络的显著优化,并且能够提升系统的整体性能。此外,本公开的实现方式还能够实现网卡中断绑核的动态调整,更好地适应复杂业务场景,提升网卡中断绑核的优化效率。

18、在本公开的第三方面,提供了一种多处理器系统,该多处理器系统包括多个处理器节点、核心处理器和存储器,存储器存储有计算机程序,当核心处理器读取并执行计算机程序时,使得该多处理器系统执行根据上述第一方面或其任一实现方式中的方法的操作。

19、在本公开的第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现根据上述第一方面或其任一实现方式中的方法的操作。

20、在本公开的第五方面,提供了一种芯片或芯片系统。该芯片或芯片系统包括处理电路,被配置为执行根据上述第一方面或其任一实现方式中的方法的操作。

21、在本公开的第六方面,提供了一种计算机程序或计算机程序产品。该计算机程序或计算机程序产品被有形地存储在计算机可读存储介质上并且包括计算机可执行指令,计算机可执行指令在被执行时使设备实现根据上述第一方面或其任一实现方式中的方法的操作。

22、实施本技术以上一个或多个方面,将目标中断迁移到与该目标中断相关联的网络任务所在的处理器节点或相邻的处理器节点(即,目标绑定节点)上。当有数据包到达时,目标中断可以通知所绑定的处理器核心处理到达的数据包。由于响应中断的处理器核心与接收数据包的网络任务在相同或相邻的处理器节点上,由此,能够减少处理器核心跨处理器节点访问内存所引起的时延,实现对网络的显著优化,并且能够提升系统的整体性能。此外,本公开的实现方式还能够实现网卡中断绑核的动态调整,更好地适应复杂业务场景,提升网卡中断绑核的优化效率。