1.本说明书一个或多个实施例涉及中断处理技术领域,尤其涉及一种中断控制方法、设备、分布式系统及存储介质。
背景技术:2.网卡是一块被设计用来允许设备在计算机网络中进行通讯的计算机硬件。当网卡收到数据包时会产生中断(一种称为irq(中断请求)的信号),通知处理器(例如cpu)有新数据包,处理器一旦接收了中断请求,就会暂时停止执行正在运行的程序,然后调用中断处理程序进行响应,把数据包从网卡缓存拷贝到内存。由于网卡中断会频繁打断处理器去处理中断,导致运行在处理器上的应用的性能受到影响。
3.比如在多numa架构场景中,随着技术的发展,数据处理规模正在变得越来越大,具有多numa节点的设备也越来越普及。numa(非统一内存访问架构,nonuniform memoryaccessarchitecture)是一种为多处理器的设备设计的内存架构,一个numa节点包含一组处理器(例如多个物理cpu),这组处理器共享同一块本地内存,内存通过内存控制器直接绑定在处理器上。具有多numa节点的设备可以同时运行多个不同类型的应用,比如频繁与网卡交换数据的web应用和不与网卡频繁交互的数据转码应用。当numa节点中的处理器频繁去处理中断时,会导致运行在该处理器上的应用的性能受到影响。
技术实现要素:4.有鉴于此,本说明书一个或多个实施例提供一种中断控制方法、设备、分布式系统及存储介质。
5.为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
6.根据本说明书一个或多个实施例的第一方面,提出了一种中断控制方法,应用于电子设备,所述电子设备包括有多个numa节点和网卡,所述numa节点包括多个处理器;所述方法包括:
7.周期性获取所述多个numa节点中的每个numa节点的负载信息;
8.在非首个周期的每个周期内,根据多个numa节点的负载信息确定目标numa节点,所述目标numa节点的负载不大于所述网卡在上一周期绑定的numa节点的负载;以及
9.若所述目标numa节点不同于所述网卡在上一周期绑定的numa节点,将所述网卡的中断号绑定到所述目标numa节点的处理器上。
10.根据本说明书一个或多个实施例的第二方面,提出了一种中断控制方法,应用于电子设备,所述电子设备包括有多个处理器和网卡;所述方法包括:
11.周期性获取所述多个处理器中的每个处理器的负载信息;
12.在非首个周期的每个周期内,根据多个处理器的负载信息确定目标处理器,所述目标处理器的负载不大于所述网卡在上一周期绑定的处理器的负载;以及
13.若所述目标处理器不同于所述网卡在上一周期绑定的处理器,将所述网卡的中断
号绑定到所述目标处理器上。
14.根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括:
15.多个numa节点,所述numa节点包括多个处理器;
16.用于收发数据的网卡;
17.用于存储处理器可执行指令的存储器;
18.其中,任一所述处理器通过运行所述可执行指令以实现第一方面所述的方法。
19.根据本说明书一个或多个实施例的第四方面,提出了一种分布式系统,包括多个数据节点;
20.所述数据节点包括有多个numa节点和网卡,所述numa节点包括共享本地内存的多个处理器;
21.所述数据节点用于执行第一方面所述的方法。
22.根据本说明书一个或多个实施例的第五方面,提出了一种电子设备,包括:
23.多个处理器;
24.用于收发数据的网卡;
25.用于存储处理器可执行指令的存储器;
26.其中,任一所述处理器通过运行所述可执行指令以实现第二方面所述的方法。
27.根据本说明书一个或多个实施例的第六方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现第一方面或第二方面所述方法的步骤。
28.本说明书实施例提供了一种中断控制方法、设备、分布式系统及存储介质,通过周期性获取每个numa节点的负载信息来确定每个周期中的目标numa节点,在非首个周期的每个周期内,所述目标numa节点的负载不大于所述网卡在上一周期绑定的numa节点的负载,实现网卡中断处理的动态控制,动态将网卡的中断号绑定在负载比较低的目标numa节点的处理器上,由负载比较低的目标numa节点的处理器来处理网卡中断,有利于提升对处理器的利用效率和应用的运行性能。
附图说明
29.图1是一示例性实施例提供的一种电子设备的结构示意图。
30.图2是一示例性实施例提供的一种分布式系统的结构示意图。
31.图3是一示例性实施例提供的一种中断控制方法的流程示意图。
32.图4是一示例性实施例提供的另一种中断控制方法的流程示意图。
33.图5是一示例性实施例提供的另一种设备的结构示意图。
具体实施方式
34.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
35.需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
36.在多numa架构场景中,随着技术的发展,数据处理规模正在变得越来越大,包括有多numa节点的设备也越来越普及。
37.numa,即non-uniform memory access architecture,非统一内存访问架构。numa模式是一种分布式存储器访问方式,处理器(例如cpu)可以同时访问不同的存储器地址,大幅度提高并行性。在多numa模式下,计算设备中可以包含一个或多个numa节点,一个numa节点包含一组处理器(例如多个物理cpu,每个cpu可以具有多个核或线程)。以cpu为例,numa节点包含的多个cpu共享同一块本地内存,numa节点内的多个cpu使用共有的内存控制器,因此numa节点的所有内存对于本节点的所有cpu都是等同的,而对于其它numa节点中的cpu都是不同的。
38.所有numa节点中的处理器都可以访问全部的系统物理存储器,但是访问本numa节点内的存储器所需要的时间,比访问其他numa节点内的存储器所花的时间要少得多。numa节点可分为本地节点(local node)、邻居节点(neighbour node)和远端节点(remote node)三种类型:本地节点:对于某个numa节点中的所有cpu,此numa节点称为本地节点。邻居节点:与本地节点相邻的numa节点称为邻居节点。远端节点:非本地节点或邻居节点的numa节点,称为远端节点。邻居节点和远端节点,称作非本地节点(off node)。可以理解的是,这里说的本地节点、邻居节点和远端节点是指numa维度的节点,而不是物理机维度的数据节点。处理器(cpu)访问不同类型numa节点内存的速度是不相同的:本地节点》邻居节点》远端节点。访问本地节点的速度最快,访问远端节点的速度最慢,即访问速度与numa节点的距离有关,距离越远访问速度越慢。
39.具有多numa节点的设备可以同时运行多个不同类型的应用,比如频繁与网卡交换数据的web应用和不与网卡频繁交互的数据转码应用。当网卡收到数据包时会产生中断(一种称为irq(中断请求)的信号),通知处理器(例如cpu)有新数据包,处理器一旦接收了中断请求,就会暂时停止执行正在运行的程序,然后调用中断处理程序进行响应,把数据包从网卡缓存拷贝到内存。当numa节点中的处理器频繁去处理中断时,会导致运行在该处理器上的应用的性能受到影响。
40.基于此,本说明书实施例提供了一种中断控制方法,应用于包括多个numa节点和网卡的电子设备中,能够周期性获取多个numa节点中的每个numa节点的负载信息,在非首个周期的每个周期内,然后根据多个numa节点的负载信息动态将网卡的中断号绑定在负载比较低的目标numa节点的处理器上,所述目标numa节点的负载不大于所述网卡在上一周期绑定的numa节点的负载,由负载比较低的目标numa节点来处理网卡中断,从而有效提升对处理器的利用效率和应用的运行性能。
41.在一个例子中,请参阅图1,图1示出了一种电子设备100的架构示意图,所述电子设备包括有包括多个numa节点10和网卡20,其中,n为大于0的整数,所述numa节点包括多个处理器11,所述多个处理器共享一本地内存12,所述处理器例如可以是cpu(如图1所示),或
者也可以是其他类型的处理器,比如mcu(microcontroller unit,微控制单元)、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)或者现成可编程门阵列(field-programmable gate array,fpga)等,可依据实际应用场景进行具体设置。其中,所述网卡可以与任一numa节点中的处理器通过数据总线交互,网卡可以在接收到新数据包时向处理器发送中断请求,由接收到中断请求的处理器调用中断处理程序进行响应,把数据包从网卡缓存拷贝到内存。
42.可以理解的是,本实施例对于所述电子设备的具体应用形态不做任何限制,可依据实际应用场景进行具体设置。在一个例子中,比如图2示出了一种分布式系统,分布式系统是多个数据节点200通过通信线路互联而构成的松散耦合的系统,每个数据节点200都是一个能够独立处理某项事务的计算机设备;其中,如图1所示的用于执行所述中断控制方法的电子设备可以是分布式系统中的数据节点200。在另一个例子中,所述电子设备也可以是移动终端、平板计算机、个人数字助理(pda)、膝上计算机、台式计算机或者服务器等计算设备。
43.在一些实施例中,请参阅图3,图3示出了一种中断控制方法的流程示意图,所述中断控制方法可应用于包括有多个numa节点和网卡的电子设备,每个所述numa节点包括共享内存的多个处理器;所述方法包括:
44.在步骤s101中,周期性获取所述多个numa节点中的每个numa节点的负载信息。
45.在步骤s102中,在非首个周期的每个周期内,根据多个numa节点的负载信息确定目标numa节点,所述目标numa节点的负载不大于所述网卡在上一周期绑定的numa节点的负载。
46.在步骤s103中,若所述目标numa节点不同于所述网卡在上一周期绑定的numa节点,将所述网卡的中断号绑定到所述目标numa节点的处理器上。
47.本实施例中,所述电子设备可以周期性执行步骤s101~步骤s103,实现动态将网卡的中断号绑定在负载比较低的目标numa节点的处理器上,由负载比较低的目标numa节点的处理器来处理网卡中断,有利于提升对处理器的利用效率和应用的运行性能。
48.可以理解的是,可以根据实际应用场景设置周期的间隔时长,本实施例对此不做任何限制。示例性的,如果所述电子设备中同时运行的应用数量较多,反映出处理器负载情况变化可能比较剧烈,则周期的间隔时长可以设置得短一些,反之,如果所述电子设备中同时运行的应用数量较少,反映出处理器负载情况变化可能较为平稳,则周期的时长可以设置得长一些,实现尽可能由负载比较低的目标numa节点的处理器来处理网卡中断。
49.在一些实施例中,假设每个周期的间隔时长为一预设时间段(比如1分钟),则电子设备可以每隔预设时间段获取多个numa节点中的每个numa节点的负载信息,然后基于多个numa节点的负载信息进行负载评估,确定出负载比较低的目标numa节点,比如在非首个周期的每个周期中,所述电子设备确定的目标numa节点的负载不大于所述网卡在上一周期绑定的numa节点的负载。示例性的,在所述目标numa节点不同于所述网卡在上一周期绑定的numa节点、且所述目标numa节点的负载与所述网卡在上一周期绑定的numa节点的负载相同的情况下,也可以不更换绑定,即保持所述网卡与上一周期绑定的numa节点的绑定关系不变。
50.在一些实施例中,在首个周期内,所述电子设备可以获取所述多个numa节点中的
每个numa节点的负载信息,然后根据多个numa节点的负载信息选择目标numa节点,所述目标numa节点的负载小于大部分numa节点的负载,大部分即超过一半以上的部分。示例性的,所述电子设备可以根据多个numa节点的负载信息,选择负载最低的一个或多个numa节点为所述目标numa节点,从而将网卡的中断号绑定到负载最低的目标numa节点上,有利于提升对处理器的利用效率和应用的运行性能。
51.在另一些实施例中,在非首个周期的每个周期内,所述电子设备可以获取所述多个numa节点中的每个numa节点的负载信息,然后根据多个numa节点的负载信息,选择负载最低的一个或多个numa节点为所述目标numa节点;和/或将各个所述numa节点的负载信息与所述网卡在上一周期绑定的numa节点的负载信息进行比对,根据比对结果确定一个或多个目标numa节点,所述目标numa节点的负载小于所述网卡在上一周期绑定的numa节点的负载;即是说,在本周期确定的所述目标numa节点不同于所述网卡在上一周期绑定的numa节点的情况下,所述电子设备可以将网卡的中断号绑定到负载比所述网卡在上一周期绑定的numa节点的负载更低的目标numa节点上,从而进一步提升网卡中断处理效率。
52.在一些实施例中,所述负载信息可以包括所述numa节点中的处理器运行应用时的第一使用率,和/或,处理软中断时的第二使用率。
53.示例性的,所述第一使用率可以通过以下方式获得:所述电子设备统计所述numa节点的多个处理器中的每个处理器在运行应用时的总体使用率,然后根据多个处理器的总体使用率的统计值确定所述第一使用率,所述统计值包括但不限于平均值、中位数,最大值或者最小值等等,比如可以根据所述numa节点的多个处理器的总体使用率的平均值确定所述第一使用率。
54.示例性的,所述第二使用率可以通过类似的方式获得:所述电子设备统计所述numa节点的多个处理器中的每个处理器在处理软中断时的irq使用率,然后根据多个处理器的irq使用率的统计值确定所述第二使用率,所述统计值包括但不限于平均值、中位数,最大值或者最小值等等,比如可以根据所述numa节点的多个处理器的irq使用率的平均值确定所述第二使用率。
55.在一示例性的实施例中,以所述负载信息包括所述numa节点中的处理器运行应用时的第一使用率为例,则所述电子设备可以周期性统计分析多个numa节点的第一使用率,在首个周期中,从所述多个numa节点中确定第一使用率比较低的目标numa节点,比如可以将第一使用率最低的一个或多个确定为目标numa节点;在非首个周期的每个周期中,从所述多个numa节点中确定第一使用率最低的一个或多个为目标numa节点,和/或,确定第一使用率低于所述网卡在上一周期绑定的numa节点的第一使用率的一个或多个为目标numa节点。
56.在一示例性的实施例中,以所述负载信息包括所述numa节点中的处理器处理软中断时的第二使用率为例,类似的,在首个周期中,所述电子设备可以从所述多个numa节点中确定第二使用率比较低的目标numa节点,比如可以将第二使用率最低的一个或多个确定为目标numa节点;在非首个周期的每个周期中,所述电子设备可以从所述多个numa节点中确定目标numa节点,所述目标numa节点的第二使用率不高于所述网卡在上一周期绑定的numa节点的第二使用率。
57.在一示例性的实施例中,以所述负载信息包括所述第一使用率和所述第二使用率
为例,所述电子设备可以综合所述第一使用率和所述第二使用率进行评估,决策出一个或多个目标numa节点。比如可以根据实际应用场景为所述第一使用率和所述第二使用率设置对应的权重,以加权求和的方式进行负载评估。在中断处理场景中为了使中断处理顺利进行,保证与网卡交互的web应用的稳定运行,对于处理器在进行软中断处理时的使用率更为敏感,则可以考虑设置所述第二使用率的权重大于所述第一使用率的权重,对于多个numa节点中的每个numa节点,根据预设的所述第一使用率的权重、预设的所述第二使用率的权重对所述第一使用率和所述第二使用率进行加权求和,获取所述numa节点的负载分数;在一个例子中,设第一使用率为ausage,第一使用率的权重为α,第二使用率为busage,第二使用率的权重为β,负载分数为nscore,则nscore=ausage*α+busage*β;其中,在满足β>α的前提下,β和α可依据实际应用场景进行具体设置,比如可以设置α为1,β为3,即第二利用率影响约为第一使用率影响的3倍。然后在首个周期中,所述电子设备可以根据所述多个numa节点的负载分数确定负载分数比较低的目标numa节点,比如可以将负载分数最低的一个或多个确定为目标numa节点;在非首个周期的每个周期中,所述电子设备可以根据所述多个numa节点的负载分数确定一个或多个目标numa节点,所述目标numa节点的负载分数最低和/或所述目标numa节点的负载分数低于所述网卡在上一周期绑定的numa节点的负载分数。
58.可以理解的是,本说明书实施例对于目标numa节点的确定数量不做任何限制,可以根据实际应用场景确定一个或者一个以上的numa节点。
59.在确定一个或多个目标numa节点之后,在首个周期中,所述电子设备可以将所述网卡的中断号绑定到所述目标numa节点的处理器上;在非首个周期的每个周期内,若所述电子设备确定所述目标numa节点不同于所述网卡在上一周期绑定的numa节点,则可以将所述网卡的中断号从上一周期绑定的numa节点更换绑定到所述目标numa节点的处理器上,若确定所述目标numa节点与所述网卡在上一周期绑定的numa节点相同,则保持不变。本实施例中,在每个周期内均执行负载信息收集、评估负载信息以确定目标numa节点以及将网卡中断号绑定在目标numa节点的处理器上的过程,实现网卡中断处理的动态控制,保证由负载比较低的目标numa节点的处理器来处理网卡中断,有利于提升对处理器的利用效率和应用的运行性能。
60.在一些实施例中,为了避免网卡中断频繁改变绑定关系带来的负担,在非首个周期的每个周期内,所述电子设备在确定一个或多个目标numa节点之后,可以评估所述网卡在上一周期绑定的numa节点的负载信息与本周期的所述目标numa节点的负载信息之间的差异,如果两者之间的差异小于预设差异,表明所述网卡在上一周期绑定的numa节点负载也是比较低的,有足够的资源可以进行中断处理,则可以保持绑定关系不变动,不将所述网卡的中断号绑定到所述目标numa节点的处理器上;如果所述网卡在上一周期绑定的numa节点的负载信息与本周期的所述目标numa节点的负载信息之间的差异超过预设差异,则表明目标numa节点相较于上一周期绑定的numa节点更为空闲,更换绑定关系后的中断处理效果更好,因此可以将所述网卡的中断号从上一周期绑定的numa节点更换绑定到所述目标numa节点的处理器上。
61.在一个例子中,以所述负载信息包括所述第一使用率和所述第二使用率为例,所述电子设备在每个周期内进行负载评估时,会统计出每个numa节点的负载分数。则在本周
期所述电子设备确定出负载分数最低的一个或多个目标numa节点之后,可以获取所述网卡在上一周期绑定的numa节点的负载分数与本周期的目标numa节点的负载分数之间的差值,如果该差值高于设定阈值,说明网卡可以绑定在一个更为空闲的numa节点上了,此时则进行一个自动化的绑定,将所述网卡的中断号从上一周期绑定的numa节点更换绑定到所述目标numa节点的处理器上;如果该差值低于设定阈值,则网卡的绑定关系保持不变,有效减少网卡中断频繁改变绑定关系带来的负担。
62.在一些实施例中,所述网卡包括单队列网卡,即该网卡只有一个中断号,所述电子设备可以确定所述目标numa节点的多个处理器中负载最低的处理器,然后将所述单队列网卡的中断号绑定到所述目标numa节点负载最低的处理器上。示例性的,可以根据所述处理器在运行应用时的总体使用率和/或处理软中断时的irq使用率进行评估,比如可以将总体使用率或者irq使用率最低者确定为负载最低的处理器;或者根据总体使用率的权重和irq使用率的权重对总体使用率和irq使用率进行加权求和得到负载分数,将所述单队列网卡的中断号绑定到所述目标numa节点负载分数最低的处理器上,其中,总体使用率的权重和irq使用率的权重的具体数值可依据实际应用场景进行具体设置,比如可以设置总体使用率的权重小于irq使用率的权重。
63.在一些实施例中,具备多numa架构的设备资源量巨大,规格高,往往采用高性能的多队列网卡。多队列网卡就是由原来的单网卡单队列变成了现在的单网卡多队列。当网卡收到数据包时会产生中断(一种称为irq(中断请求)的信号),通知处理器(比如cpu)有新数据包,处理器一旦接收了中断请求,就会暂时停止执行正在运行的程序,然后调用中断处理程序进行响应,把数据包从网卡缓存拷贝到内存,因为网卡缓存大小有限,如果不及时拷出数据,后续数据包将会因为缓存溢出被丢弃,因此这一工作需要立即完成。剩下的处理和操作数据包的工作就会交给软中断,高负载的网卡是软中断产生的大户,很容易形成瓶颈。但通过多队列网卡驱动的支持,一个网卡上有多个队列,每个队列对应一个中断号,将各个队列通过中断号绑定到不同的处理器上,实现各个处理器(例如cpu)可以并发收包,满足网卡的需求,这就是多队列网卡的应用。
64.示例性的,在周期性获取多个numa节点中的每个numa节点的负载信息(步骤s101)之前,所述电子设备可以先检查本设备中的网卡是否支持多队列,比如可以通过脚本命令查看网卡参数,如果网卡参数中包括有指定参数值,则确定网卡支持多队列,所述指定参数值为指示网卡支持多队列的参数值。
65.在所述网卡为多队列网卡的情况下,所述多队列网卡中的每一队列对应一中断号。所述电子设备在确定一个或多个目标numa节点之后,可以将所述多队列网卡中各个队列的中断号分别绑定到一个或多个目标numa节点中的多个处理器上。
66.在一示例性的实施方式中,若所述多队列网卡的队列数量与一个或多个所述目标numa节点中的处理器数量相同,则所述电子设备可以将所述多队列网卡中的多个队列的中断号一一对应绑定到一个或多个所述目标numa节点的多个处理器上。示例性的,所述电子设备确定所述网卡所有队列的中断号,以及一个或多个所述目标numa节点中所有处理器的处理器编号,然后在每个中断号的亲和性(如cpu亲和性)中逐个填入处理器编号,完成每个中断号对一个处理器的一一对应绑定过程。
67.在一个例子中,比如所述电子设备确定两个目标numa节点,其中一个目标numa节
点有3个cpu,分别为cpu1、cpu2和cpu3,另一个目标numa节点也有3个cpu,分别为cpu4,cpu5和cpu6。网卡有6个队列,分别为q0、q1、q2、q3、q4、q5和q6。所述电子设备将6个队列的中断号与6个cpu分别一一对应绑定,比如在队列q0的中断号的cpu亲和性中填入cpu0的编号,以实现由cpu0来处理来自队列q0的中断请求;在队列q1的中断号的cpu亲和性中填入cpu1的编号,以实现由cpu1来处理来自队列q1的中断请求,依此类推,直到完成每个中断号对一个cpu的绑定。
68.在一示例性的实施例中,若所述多队列网卡的队列数量大于一个或多个所述目标numa节点中的处理器数量,则至少有两个队列的中断号绑定在同一个处理器中。为了提高中断处理效率,可以根据所述目标numa节点中的处理器的负载信息来确定各个处理器待绑定的队列数量,各个处理器待绑定的队列数量与所述处理器的负载成负相关关系,即所述处理器的负载越低,则该处理器待绑定的队列数量越多,反之,所述处理器的负载越高,则该处理器待绑定的队列数量越少。
69.在确定各个处理器待绑定的队列数量之后,所述电子设备可以根据各个处理器待绑定的队列数量,将所述多队列网卡中的多个队列的中断号与所述目标numa节点中的处理器对应绑定;其中,对于所述目标numa节点中的任意两个处理器,负载低的处理器绑定的队列数量多于负载高的处理器绑定的队列数量,从而有利于提高中断处理效率。在一示例性的实施例中,若所述多队列网卡中的队列数量小于一个或多个所述目标numa节点中的处理器的数量,在一个例子中,所述电子设备可以将所述多队列网卡中的多个队列的中断号随机与所述目标numa节点中的处理器一一对应绑定;在另一个例子中,为了提高中断处理效率,所述电子设备可以根据处理器的负载信息从全部处理器中选择负载比较低的部分处理器,然后将所述多队列网卡中的多个队列的中断号一一对应绑定到一个或多个所述目标numa节点中的部分处理器上,换句话说,绑定有中断号的处理器的负载低于未绑定有中断号的处理器的负载。
70.其中,所述处理器的负载信息包括所述处理器在运行应用时的总体使用率和/或处理软中断时的irq使用率,比如可以将总体使用率或者irq使用率最低者确定为负载最低的处理器;或者根据总体使用率的权重和irq使用率的权重对总体使用率和irq使用率进行加权求和得到负载分数,总体使用率的权重小于irq使用率的权重,负载分数最低者即为负载最低的处理器。
71.以上实施方式中的各种技术特征可以任意进行组合,只要特征之间的组合不存在冲突或矛盾,但是限于篇幅,未进行一一描述,因此上述实施方式中的各种技术特征的任意进行组合也属于本说明书公开的范围。
72.当然,本说明书提供的中断控制方法也适用于其他中断处理场景,并不限于在多numa架构场景中。请参阅图4,本说明书实施例提供了一种中断控制方法,应用于电子设备,所述电子设备包括有多个处理器和网卡;所述方法包括:
73.在步骤s201中,周期性获取所述多个处理器中的每个处理器的负载信息。
74.在步骤s202中,在非首个周期的每个周期内,根据多个处理器的负载信息确定目标处理器,所述目标处理器的负载不大于所述网卡在上一周期绑定的处理器的负载。
75.在步骤s203中,以及若所述目标处理器不同于所述网卡在上一周期绑定的处理器,将所述网卡的中断号绑定到所述目标处理器上。
76.在本实施例中,能够周期性获取多个处理器的负载信息,然后根据多处理器的负载信息动态将网卡的中断号绑定在负载比较低的目标处理器上,由负载比较低的目标处理器来处理网卡中断,从而有效提升对处理器的利用效率和应用的运行性能。
77.在一实施例中,所述将所述网卡的中断号绑定到所述目标处理器上,包括:若所述网卡在上一周期绑定的处理器的负载信息与本周期的所述目标处理器的负载信息之间的差异超过预设差异,将所述网卡的中断号从上一周期绑定的处理器更换绑定到所述目标处理器上。本实施例有利于避免网卡中断频繁改变绑定关系带来的负担。
78.在一实施例中,还包括:在首个周期内,根据多个处理器的负载信息,选择负载最低的一个或多个处理器为所述目标处理器。
79.所述在非首个周期的每个周期内,根据多个处理器的负载信息确定处理器,包括:根据多个处理器的负载信息,选择负载最低的一个或多个处理器为所述目标处理器;和/或,将各个所述处理器的负载信息与所述网卡在上一周期绑定的处理器的负载信息进行比对,将负载小于所述网卡在上一周期绑定的处理器的负载的一个或多个处理器确定为所述处理器。
80.在一实施例中,所述负载信息包括所述处理器运行应用时的第一使用率,和/或,处理软中断时的第二使用率。
81.在一实施例中,所述负载信息包括所述第一使用率和所述第二使用率。所述根据多个处理器的负载信息确定目标处理器包括:对于每个处理器,根据所述第一使用率的权重、所述第二使用率的权重对所述第一使用率和所述第二使用率进行加权求和,获取所述处理器的负载分数;其中,所述第二使用率的权重大于所述第一使用率的权重;从所述多个处理器中确定一个或多个目标处理器,所述目标处理器的负载分数最低和/或所述目标处理器的负载分数低于所述网卡在上一周期绑定的处理器的负载分数。
82.在一实施例中,所述网卡包括单队列网卡。所述将所述网卡的中断号绑定到所述目标处理器上,包括:在确定多个目标处理器的情况下,将所述单队列网卡的中断号绑定到负载最低的处理器上。
83.在一实施例中,所述网卡包括多队列网卡;所述多队列网卡中的每一队列对应一中断号;所述目标处理器的数量包括多个,且所述目标处理器的数量少于所述电子设备所包含的处理器的数量。所述将所述网卡的中断号绑定到所述目标numa节点的处理器上,包括:若所述多队列网卡的队列数量与所述目标处理器数量相同,将所述多队列网卡中的多个队列的中断号一一对应绑定到多个目标处理器上。
84.在一实施例中,若所述多队列网卡的队列数量大于所述目标处理器数量,则根据目标处理器的负载信息确定各个目标处理器待绑定的队列数量;各个目标处理器待绑定的队列数量与所述目标处理器的负载成负相关关系;根据各个目标处理器待绑定的队列数量,将所述多队列网卡中的多个队列的中断号与多个目标处理器对应绑定。
85.在一实施例中,若所述多队列网卡的队列数量小于所述目标处理器数量,将所述多队列网卡中的多个队列的中断号一一对应绑定到部分目标处理器上;其中,绑定有中断号的目标处理器的负载低于未绑定有中断号的目标处理器的负载。
86.以上相关之处可参见图3所示实施例的相关描述,此处不再赘述。
87.相应的,请参阅图1,本说明书实施例还提供了一种电子设备,包括:
88.多个numa节点,所述numa节点包括多个处理器;
89.用于收发数据的网卡;
90.用于存储处理器可执行指令的存储器;
91.其中,任一所述处理器通过运行所述可执行指令以实现上述图3实施例所述的方法。
92.示例性的,所述numa节点和网卡可以通过数据总线连接。所述处理器执行所述存储器中包括的可执行指令,所述处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
93.所述存储器存储上述方法的可执行指令,所述存储器可以包括至少一种类型的存储介质,存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等等。而且,电子设备可以与通过网络连接执行存储器的存储功能的网络存储装置协作。存储器可以是电子设备的内部存储单元,例如电子设备的硬盘或内存。存储器也可以是电子设备的外部存储设备,例如电子设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,存储器还可以既包括电子设备的内部存储单元也包括外部存储设备。存储器用于存储可执行指令以及设备所需的其他程序和数据。存储器还可以用于暂时地存储已经输出或者将要输出的数据。
94.相应的,本说明书实施例还提供了一种电子设备,包括:
95.多个处理器;
96.用于收发数据的网卡;
97.用于存储处理器可执行指令的存储器;
98.其中,任一所述处理器通过运行所述可执行指令以实现上述图4实施例所述的方法。
99.示例性的,图5是一示例性实施例提供的一种电子设备500的示意结构图。请参考图5,在硬件层面,该设备500包括至少两个处理器502、内部总线504、网卡506、内存508以及非易失性存储器510,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器502从非易失性存储器510中读取对应的计算机程序到内存508中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
100.相应地,本说明书实施例还提供了一种分布式系统,包括多个数据节点;
101.所述数据节点包括有多个numa节点和网卡,所述numa节点包括多个处理器;所述多个处理器共享一本地内存;
102.所述数据节点用于执行上述的中断控制方法。
103.在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由装置的处理器执行以完成上述方法。例如,非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
104.一种非临时性计算机可读存储介质,当存储介质中的指令由终端的处理器执行时,使得终端能够执行上述方法。
105.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
106.在一个典型的配置中,计算机包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
107.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
108.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
109.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
110.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
111.在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出
项目的任何或所有可能组合。
112.应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
113.以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。