线程绑定方法、装置、存储介质及服务器与流程

文档序号:19673760发布日期:2020-01-10 23:00阅读:144来源:国知局
线程绑定方法、装置、存储介质及服务器与流程

本申请涉及虚拟机领域,具体而言,涉及一种线程绑定方法、装置、存储介质及服务器。



背景技术:

随着网络发展,虚拟机的应用越来越广泛,对于虚拟机的性能的要求也越来越高。其中,虚拟机的线程绑定是影响其性能的一个重要因素。

现有技术中,根据策略配置项,选择不同的方式为虚拟机提供线程绑定。例如,根据高性能模式配置项,每一对兄弟线程只作为一条线程提供给单独的虚拟机使用,最大限度的保证了虚拟机的cpu性能,例如48线程的smt架构cpu,只能创建6台4核虚拟机。具体地,在高性能模式下,当空闲的线程数量少于vcpu数量,创建失败,流程结束,返回错误结果。每一条线程不能复用,从而使用成本极高。



技术实现要素:

本申请的目的在于提供一种线程绑定方法、装置、存储介质及服务器,以解决上述问题。

为了实现上述目的,本申请实施例采用的技术方案如下:

第一方面,本申请实施例提供一种线程绑定方法,应用于服务器,所述服务器包括至少1个物理机,所述物理机包括至少1个核心,所述核心设置有1对兄弟线程,所述方法包括:获取虚拟机的创建请求,其中,所述创建请求包含所述虚拟机的vcpu的数量;当所述服务器中的空闲核心的总数量小于所述vcpu的数量时,确定第一物理机,其中,所述第一物理机为包括所述空闲核心的数量最多的或线程平均使用率最低的物理机,所述空闲核心为至少有一条线程为空闲线程的核心;将所述第一物理机上的第一线程和每一个所述空闲核心上的一条空闲线程与所述虚拟机绑定,其中,所述第一线程为所述第一物理机上的被虚拟机占用的线程,所述第一线程的数量为所述vcpu的数量与所述第一物理机上的空闲核心的数量的差值,每一条所述第一线程彼此属于不同的核心。

第二方面,本申请实施例提供一种线程绑定装置,应用于服务器,所述服务器包括至少1个物理机,所述物理机包括至少1个核心,所述核心设置有1对兄弟线程,所述装置包括:请求获取单元,用于获取虚拟机的创建请求,其中,所述创建请求包含所述虚拟机的vcpu的数量;处理单元,用于当所述服务器中的空闲核心的总数量小于所述vcpu的数量时,确定第一物理机,其中,所述第一物理机为包括所述空闲核心的数量最多的或线程平均使用率最低的物理机,所述空闲核心为至少有一条线程为空闲线程的核心;将所述第一物理机上的第一线程和每一个所述空闲核心上的一条空闲线程与所述虚拟机绑定,其中,所述第一线程为所述第一物理机上的被虚拟机占用的线程,所述第一线程的数量为所述vcpu的数量与所述第一物理机上的空闲核心的数量的差值,每一条所述第一线程彼此属于不同的核心。

第三方面,本申请实施例提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述的方法。

第四方面,本申请实施例提供一种服务器,所述服务器包括:处理器和存储器,所述存储器用于存储一个或多个程序;当所述一个或多个程序被所述处理器执行时,实现如第一方面所述的方法。

相对于现有技术,本申请实施例所提供的一种线程绑定方法、装置、存储介质及服务器的有益效果:当服务器中的空闲核心的总数量小于vcpu的数量时,通过将第一物理机上的第一线程和每一个空闲核心上的一条空闲线程与虚拟机绑定,在保障虚拟机性能的前提下,将部分已经被虚拟机占用的线程重复绑定到当前需要创建的虚拟机上,提升了线程的重复使用率,从而降低了线程的使用成本,整体上提升了服务器的性价比。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。

图1为本申请实施例提供的服务器的结构示意图;

图2为本申请实施例提供的线程绑定方法的流程示意图;

图3为本申请实施例提供的另一种线程绑定方法的流程示意图;

图4为本申请实施例提供的cpu拓扑图;

图5为本申请实施例提供的s105的子步骤示意图;

图6为本申请实施例提供的s103的子步骤示意图;

图7为本申请实施例提供的线程绑定装置的单元示意图。

图中:201-请求获取单元;202-处理单元。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

在本申请的描述中,需要说明的是,术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该申请产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。

在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。

下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

请参考图1,以包括两个物理机的服务器为例。物理机node1设置有核心core1、core2、core3以及core4。物理机node2设置有核心core5、core6、core7以及core8。每一个核心拥有自己独立的二级缓存,每一台物理机上的核心共享三级缓存ram。每一个核心上面均设置有1对兄弟线程,兄弟线程不可以绑定到同一个虚拟机上。

虚拟机的虚拟处理器(简称,vcpu)可以通过线程与核心绑定,从而通过核心调度实现vcpu对应的功能。以虚拟机拥有4个vcpu为例,当4个vcpu分别绑定到core1、core2、core3以及core4上的1条线程时,虚拟机的4个vcpu共享物理机node1上的三级缓存ram,4个vcpu均可以快速获取存储于物理机node1的ram中目标信息。当4个vcpu分别绑定到core1、core2、core3以及core6上的1条线程时。目标信息可能存储于物理机node1的ram中或者物理机node2的ram中。当目标信息可能存储于物理机node2的ram中,core1、core2、core3再获取目标信息时,还需要通过路由器(router)去访问物理机node2的ram增加了信息获取的颠簸度。

本申请实施例提供了一种线程绑定方法,应用于图1所示的服务器。该服务器包括至少1个物理机,每个物理机包括至少1个核心,每个核心均设置有1对兄弟线程。

同一个物理机中的核心和三级缓存(ram)通过总线(bus)连接;不同的物理机通过路由器(router)连接。一个物理机上的每个核心可以通过总线(bus)访问物理机上的三级缓存(ram)。一个物理机上的每个核心可以通过总线(bus)和路由器(router)访问其他物理机上的三级缓存(ram)。

如图1所示的服务器还包括部分由物理机独占的核心。物理机独占的核心可以用于执行ram中存储的可执行模块,例如计算机程序。物理机独占的核心具有信号的处理能力。在实现过程中,线程绑定方法的各步骤可以通过物理机独占的核心中的硬件的集成逻辑电路或者软件形式的指令完成。

应当理解的是,图1所示的结构仅为服务器的部分的结构示意图,服务器还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。

本发明实施例提供的一种线程绑定方法,可以但不限于应用于图1所示的服务器,具体的流程,请参考图2:

s101,获取虚拟机的创建请求。

其中,创建请求包含虚拟机的vcpu的数量。在一种可能的实现方式中,创建请求可以是用户输入的,或者是用户终端传输给服务器的。

s102,判断服务器中的空闲核心的总数量是否小于vcpu的数量。若是,则执行s104;若否,则执行s103。

具体地,空闲核心为至少有一条线程为空闲线程的核心。当服务器中的空闲核心的总数量小于vcpu的数量时,需要将其他已经被虚拟机占用的线程重复绑定到当前需要创建的虚拟机,此时需要执行s104,使得线程可以被重复绑定,当一条线程重复绑定不同的虚拟机时,对于一条线程只能绑定一台虚拟机的成本更低,性价比更高。当服务器中的空闲核心的总数量大于或等于vcpu的数量时,仍然有足够的空闲线程,不用考虑性价比,为了保障虚拟机的相应速度,此时执行s103。

s103,将与vcpu数量相等的空闲核心上的一条空闲线程与虚拟机绑定。

具体地,确定与vcpu数量相等的空闲核心,并将已确定的空闲核心上的一条空闲线程与虚拟机绑定,此时,虚拟机的相应速度更快,运转效率更高。

s104,确定第一物理机。

其中,第一物理机为包括空闲核心的数量最多的或线程平均使用率最低的物理机。将空闲核心的数量最多的或线程平均使用率最低的物理机上的已被占用的线程重复与当前需要创建的虚拟机绑定,相对于绑定其他物理机上的线程,更有利于提升虚拟机的运转效率。

s106,将第一物理机上的第一线程和每一个空闲核心上的一条空闲线程与虚拟机绑定。

其中,第一线程为第一物理机上的被虚拟机占用的线程,第一线程的数量为vcpu的数量与第一物理机上的空闲核心的数量的差值,每一条第一线程彼此属于不同的核心。当然地,第一线程为非物理机或应用程序独占的线程。

综上所述,本申请实施例提供的线程绑定方法中,当服务器中的空闲核心的总数量小于vcpu的数量时,通过将第一物理机上的第一线程和每一个空闲核心上的一条空闲线程与虚拟机绑定,在保障虚拟机性能的前提下,将部分已经被虚拟机占用的线程重复绑定到当前需要创建的虚拟机上,提升了线程的重复使用率,从而降低了线程的使用成本,整体上提升了服务器的性价比。

在图2的基础上,对于s106中的第一线程,本申请实施例还给出了一种可能的获取方式,请参考图3,线程绑定方法还包括:

s105,依据第一物理机上已占用核心的各条线程的临近使用率确定第一线程。

其中,已占用核心为其上的一对兄弟线程均被虚拟机占用的核心。具体地,可以通过如图4所示的cpu拓扑图获取各条线程的临近使用率,从而确定第一线程。

请参考图4,物理机node3包括16个核心,每个核心设置有1对兄弟线程。以线程t2为例,其兄弟线程为t1。线程的t2的使用率参考cpu拓扑图即可获取。cpu拓扑图可以存储于物理机的内存中。

在图3的基础上,对于s105中的内容,本申请实施例还给出了一种可能的实现方式,请参见图5,s105包括:

s105-1,获取已占用核心的各条线程的临近使用率。

具体地,可以依据图4所示的cpu拓扑图获取已占用核心的各条线程的临近使用率。可以依据下列算式计算出各条线程的临近使用率:

p=p1*0.7+p2*0.3

其中,p表征该线程的临近使用率;p1表征临近1小时内该线程的使用率;p2表征临近24小时内该线程的使用率。

s105-2,从每一个已占用核心上临近使用率低的线程中,依据升序确定第一线程。

具体地,依据升序确定m条临近使用率低的线程,以作为第一线程。m为vcpu的数量与第一物理机上的空闲核心的数量的差值。临近使用率低表征其空闲时间较长。将临近使用率低的线程与创建的虚拟机绑定,相对于将临近使用率高的线程与创建的虚拟机绑定,有利于提升虚拟机的性能。

在图2的基础上,对于s103中的内容,本申请实施例还给出了一种可能的实现方式,请参考图6,s103包括:

s103-1,判断是否存在至少一个第二物理机。若是,则执行s103-2;若否,则执行s103-3。

具体地,第二物理机为其上的空闲核心的数量大于或等于vcpu的数量的物理机。当存在第二物理机时,为了避免跨物理机获取目标信息,优选地将一个第二物理机上的空闲线程与虚拟机绑定,此时执行s103-2。当不存在第二物理机时,即任意一个物理机上的空闲核心的数量小于vcpu的数量时,执行s103-3。

s103-2,将一个第二物理机上n个空闲核心上的一条空闲线程分别与虚拟机绑定。

具体地,n表征vcpu的数量。按照预设定的规则(如名称顺序)从一个第二物理机上确定n个空闲核心,并将该n个空闲核心上的一条空闲线程分别与虚拟机绑定。第二物理机可以为其上的空闲核心的数量大于或等于vcpu的数量的物理机。

s103-3,将服务器中n个空闲核心上的一条空闲线程与虚拟机绑定。

当服务器中的空闲核心的总数量大于或等于n,且任意一个物理机上的空闲核心的数量小于n时,先确定确定n个空闲核心,再将n个空闲核心上的一条空闲线程分别与虚拟机绑定。

需要说明的是,s103-3中的n个空闲核心可以分布在不同的物理机上,s103-2中的n个空闲核心需要分布在同一个第二物理机上。

在一种可能的实现方式中,每一台物理机每隔一段时间更新其自身的cpu拓扑图。同时,监控服务动态监听线程使用率,如果有线程长期处于接近满负载,则寻找当前是否有长期闲置(距离上次活跃时期>2天或者平均使用率<20%或者绑定虚拟机处于关机状态)的线程,如果有,则进行动态核扩容,临时占用闲置线程。在未来该线程的被占用虚拟机vcpu资源不足时,主动释放本次占用归还线程。

在极端情况下,线程资源严重不足,则配合监控服务进行虚拟机热迁移,将当前节点线程使用率之和最高的虚拟机向其他物理节点疏散,直到达到cpu警报临界值以下。

请参阅图7,图7为本申请实施例提供的一种线程绑定装置,可选的,该线程绑定装置被应用于上文所述的服务器。

线程绑定装置包括请求获取单元201和处理单元202。

请求获取单元201,用于获取虚拟机的创建请求,其中,创建请求包含虚拟机的vcpu的数量。具体地,请求获取单元201可以执行上述的s101。

处理单元202,用于当服务器中的空闲核心的总数量小于vcpu的数量时,确定第一物理机,其中,第一物理机为包括空闲核心的数量最多的或线程平均使用率最低的物理机,空闲核心为至少有一条线程为空闲线程的核心;将第一物理机上的第一线程和每一个空闲核心上的一条空闲线程与虚拟机绑定,其中,第一线程为第一物理机上的被虚拟机占用的线程,第一线程的数量为vcpu的数量与第一物理机上的空闲核心的数量的差值,每一条第一线程彼此属于不同的核心。具体地,处理单元202可以执行上述的s102、s103、s104以及s106。

在一种可能的实现方式中,处理单元202还用于依据第一物理机上已占用核心的各条线程的临近使用率确定第一线程,其中,已占用核心为其上的一对兄弟线程均被虚拟机占用的核心。具体地,处理单元202可以执行上述的s105。

需要说明的是,本实施例所提供的线程绑定装置,其可以执行上方法流程实施例所示的方法流程,以实现对应的技术效果。为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。

本发明实施例还提供了一种存储介质,该存储介质存储有计算机指令、程序,该计算机指令、程序在被读取并运行时执行上述实施例的线程绑定方法。该存储介质可以包括内存、闪存、寄存器或者其结合等。

下面提供一种服务器,服务器包括处理器和存储器。具体地,处理器可以为图1所示的核心,存储器可以为图1所示的ram。处理器和存储器通过总线连接。存储器用于存储一个或多个程序,当一个或多个程序被处理器执行时,执行上述实施例的线程绑定方法。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其它的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1