应用程序实例绑定处理器核心的方法以及相关设备技术

技术编号:38745223 阅读:9 留言:0更新日期:2023-09-08 23:27
本申请涉及一种应用程序实例绑定处理器核心的方法以及相关设备。其中,该方法包括:在多个处理器的NUMA功能开启的情况下,响应于应用程序实例的创建请求,确定应用程序实例所需的处理器核心的数量;获取多个处理器的可分配处理器核心的信息;根据多个处理器的可分配处理器核心的数量,从多个处理器中选择若干处理器为应用程序实例分配处理器核心,并使得所选择的处理器的数量最少;将分配的处理器核心与应用程序实例绑定。通过本申请,解决了因NUMA功能开启导致应用程序的性能降低的问题,提升了应用程序的性能。了应用程序的性能。了应用程序的性能。

【技术实现步骤摘要】
应用程序实例绑定处理器核心的方法以及相关设备


[0001]本申请涉及计算机
,特别是涉及应用程序实例绑定处理器核心的方法以及相关设备。

技术介绍

[0002]为应用程序,例如数据库程序适配处理器(CPU),当打开处理器的非统一内存访问(Non

uniform memory access,简称为NUMA)功能时,因应用程序实例随机绑定处理器核心,导致应用程序实例存在跨NUMA节点甚至跨不同Socket的处理器访问内存的情形,导致应用程序的性能降低。

技术实现思路

[0003]本实施例提供的应用程序实例绑定处理器核心的方法以及相关设备,至少解决相关技术中因NUMA功能开启导致应用程序的性能降低问题。
[0004]一种应用程序实例绑定处理器核心的方法,包括:
[0005]在多个处理器的NUMA功能开启的情况下,响应于应用程序实例的创建请求,确定所述应用程序实例所需的处理器核心的数量;
[0006]获取所述多个处理器的可分配处理器核心的信息;
[0007]根据所述多个处理器的可分配处理器核心的数量,从所述多个处理器中选择若干处理器为所述应用程序实例分配处理器核心,并使得所选择的处理器的数量最少;
[0008]将分配的处理器核心与所述应用程序实例绑定。
[0009]在其中的一些实施例中,根据所述多个处理器的可分配处理器核心的数量,从所述多个处理器中选择若干处理器为所述应用程序实例分配处理器核心,并使得所选择的处理器的数量最少包括:
>[0010]根据所述多个处理器的可分配处理器核心的数量,对所述多个处理器进行排序;
[0011]在所述应用程序实例所需的处理器核心的数量不大于所述多个处理器中的一个或者多个处理器的可分配处理器核心的数量的情况下,从所述一个或者多个处理器中选择可分配处理器核心的数量最少的处理器为所述应用程序实例分配处理器核心;
[0012]在所述应用程序实例所需的处理器核心的数量大于所述多个处理器中的每一个处理器的可分配处理器核心的数量的情况下,从所述多个处理器中选择可分配处理器核心的数量最多的处理器为所述应用程序实例分配处理器核心。
[0013]在其中的一些实施例中,所述多个处理器中每个处理器包括多个NUMA节点,每个NUMA节点关联处理器的一个或者多个处理器核心;根据所述多个处理器的可分配处理器核心的数量,从所述多个处理器中选择若干处理器为所述应用程序实例分配处理器核心包括:
[0014]获取所选择的处理器的NUMA节点信息;
[0015]在所述应用程序实例所需的处理器核心的数量不大于所选择的处理器中的一个
NUMA节点的可分配处理器核心的数量的情况下,从所述一个NUMA节点的可分配处理器核心中为所述应用程序实例分配处理器核心。
[0016]在其中的一些实施例中,根据所述多个处理器的可分配处理器核心的数量,从所述多个处理器中选择若干处理器为所述应用程序实例分配处理器核心还包括:
[0017]在所述应用程序实例所需的处理器核心的数量大于所选择的处理器中的每一个NUMA节点的可分配处理器核心的数量的情况下,获取所述处理器中两两NUMA节点间的处理器核心与内存器的亲和度;以及
[0018]根据所述亲和度的数值由小至大的次序,从所述处理器的NUMA节点中选择两个或者两个以上的NUMA节点,并从所述两个或两个以上的NUMA节点的可分配处理器核心中为所述应用程序实例分配处理器核心,其中,所述亲和度的数值越小表示两两NUMA节点间的处理器访问内存器的速度越快。
[0019]在其中的一些实施例中,获取所述多个处理器的可分配处理器核心的信息包括:
[0020]在所述应用程序实例为共享处理器的应用程序实例的情况下,获取所述多个处理器的已分配时间分片比例;若所述多个处理器的已分配时间分片比例低于设定值,则根据处理器负载选择处理器,并确定选择的处理器的所有处理器核心均为可分配处理器核心;
[0021]在所述应用程序实例为独享处理器的应用程序实例的情况下,获取所述多个处理器中空闲的处理器核心,并确定所述空闲的处理器核心为可分配处理器核心。
[0022]在其中的一些实施例中,将分配的处理器核心与所述应用程序实例绑定包括:
[0023]通过Linux CGroup将分配的处理器核心与所述应用程序实例的进程绑定,并将绑定信息写入到Linux CGroup的配置文件。
[0024]在其中的一些实施例中,在将绑定信息写入到Linux CGroup的配置文件之后,所述方法还包括:
[0025]检测所述配置文件中的绑定信息是否已生效;
[0026]在所述绑定信息未生效的情况下,重新获取与所述绑定信息对应的应用程序实例的进程信息,将分配的处理器核心与重新获取的所述应用程序实例的进程绑定,并将绑定信息更新至所述配置文件。
[0027]在其中的一些实施例中,在将绑定信息写入到Linux CGroup的配置文件之后,所述方法还包括:
[0028]在所述应用程序实例为共享处理器的应用程序实例的情况下,根据所述应用程序实例的实例负载,将所述应用程序实例重新绑定所述多个处理器的可分配处理器核心,以使得所述多个处理器的实例负载平衡;将所述应用程序实例的绑定信息更新至所述配置文件;
[0029]在所述应用程序实例为独享处理器的应用程序实例的情况下,判断所述应用程序实例在单一NUMA节点上的实例负载是否高于第一负载值;在所述应用程序实例在单一NUMA节点上的实例负载高于所述第一负载值的情况下,将所述应用程序实例重新绑定多个NUMA节点的可分配处理器核心;将所述应用程序实例的绑定信息更新至所述配置文件。
[0030]在其中的一些实施例中,所述方法还包括:
[0031]在所述应用程序实例为独享处理器的应用程序实例的情况下,交换所述应用程序实例中的两个应用程序实例所绑定的处理器核心,以使得至少其中一个应用程序实例所需
的处理器核心绑定一个NUMA节点的处理器核心,或所述两个应用程序实例所需的处理器核心各自绑定一个NUMA节点的处理器核心。
[0032]一种应用程序实例绑定处理器核心的控制器,包括:处理器,以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行上述任一项所述的方法。
[0033]一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述任一项所述的方法。
[0034]本实施例提供的应用程序实例绑定处理器核心的方法以及相关设备,通过在多个处理器的NUMA功能开启的情况下,响应于应用程序实例的创建请求,确定应用程序实例所需的处理器核心的数量;获取多个处理器的可分配处理器核心的信息;根据多个处理器的可分配处理器核心的数量,从多个处理器中选择若干处理器为应用程序实例分配处理器核心,并使得所选择的处理器的数量最少;将分配的处理器核心与应本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种应用程序实例绑定处理器核心的方法,包括:在多个处理器的NUMA功能开启的情况下,响应于应用程序实例的创建请求,确定所述应用程序实例所需的处理器核心的数量;获取所述多个处理器的可分配处理器核心的信息;根据所述多个处理器的可分配处理器核心的数量,从所述多个处理器中选择若干处理器为所述应用程序实例分配处理器核心,并使得所选择的处理器的数量最少;将分配的处理器核心与所述应用程序实例绑定。2.根据权利要求1所述的方法,其中,根据所述多个处理器的可分配处理器核心的数量,从所述多个处理器中选择若干处理器为所述应用程序实例分配处理器核心,并使得所选择的处理器的数量最少包括:根据所述多个处理器的可分配处理器核心的数量,对所述多个处理器进行排序;在所述应用程序实例所需的处理器核心的数量不大于所述多个处理器中的一个或者多个处理器的可分配处理器核心的数量的情况下,从所述一个或者多个处理器中选择可分配处理器核心的数量最少的处理器为所述应用程序实例分配处理器核心;在所述应用程序实例所需的处理器核心的数量大于所述多个处理器中的每一个处理器的可分配处理器核心的数量的情况下,从所述多个处理器中选择可分配处理器核心的数量最多的处理器为所述应用程序实例分配处理器核心。3.根据权利要求1所述的方法,其中,所述多个处理器中每个处理器包括多个NUMA节点,每个NUMA节点关联处理器的一个或者多个处理器核心;根据所述多个处理器的可分配处理器核心的数量,从所述多个处理器中选择若干处理器为所述应用程序实例分配处理器核心包括:获取所选择的处理器的NUMA节点信息;在所述应用程序实例所需的处理器核心的数量不大于所选择的处理器中的一个NUMA节点的可分配处理器核心的数量的情况下,从所述一个NUMA节点的可分配处理器核心中为所述应用程序实例分配处理器核心。4.根据权利要求3所述的方法,其中,根据所述多个处理器的可分配处理器核心的数量,从所述多个处理器中选择若干处理器为所述应用程序实例分配处理器核心还包括:在所述应用程序实例所需的处理器核心的数量大于所选择的处理器中的每一个NUMA节点的可分配处理器核心的数量的情况下,获取所述处理器中两两NUMA节点间的处理器核心与内存器的亲和度;以及根据所述亲和度的数值由小至大的次序,从所述处理器的NUMA节点中选择两个或者两个以上的NUMA节点,并从所述两个或两个以上的NUMA节点的可分配处理器核心中为所述应用程序实例分配处理器核心,其中,所述亲和度的数值越小表示两两NUMA节点间的处理器访问内存器的速度越快。5.根据权利要求1所述的方法,其中,获取所述多个处理器的可分配处理器核心的信...

【专利技术属性】
技术研发人员:马佳李大勇韦仁忠彭祥李飞飞
申请(专利权)人:阿里云计算有限公司
类型:发明
国别省市:

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

1