具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的资源调度方法、资源调度装置、电子设备和可读存储介质进行详细地说明。
本申请实施例提供一种资源调度方法,用于控制主机,如图1所示,该资源调度方法包括:
步骤102,接收用户设备发送的资源调度请求,资源调度请求中携带有待进行资源调度的物理机的物理机标识、待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量;
步骤104,根据资源调度请求中携带的物理机标识,向物理机发送信息采集请求;
步骤106,接收物理机根据信息采集请求所反馈的物理机的裸片信息;
步骤108,根据物理机的裸片信息、待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量,生成调度信息,调度信息包括目标虚拟机的虚拟机标识和目标虚拟机的所需处理器数量;
步骤110,将调度信息发送至物理机,调度信息用于指示物理机根据目标虚拟机的虚拟机标识建立目标虚拟机以及根据所需处理器数量为目标虚拟机分配处理器。
在该实施例中,该资源调度方法应用于控制主机,控制主机可以根据物理机的裸片信息,生成调度信息,从而根据调度信息控制物理机创建虚拟机以及向每个创建的虚拟机分配处理器资源。
需要说明的是,控制主机和物理机均为电子设备,而控制主机为控制对象,物理机为被控对象,裸片即为Die。
具体地,控制主机接收由用户设备发送的资源调度请求,该资源调度请求中携带有用户需要进行资源调度的物理机的物理机标识、待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量,其中待创建虚拟机可以为一个或多个,进而向该物理机标识对应的物理机发送信息采集请求,物理机接收到信息采集请求后会采集自身的裸片信息发送至控制主机。待物理机标识即为物理机的身份标识,控制主机能够根据身份标识,确认具体为哪个或哪些待调度的物理机。
进一步地,控制主机根据裸片信息、待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量确定目标虚拟机以及目标虚拟机的所需处理器数量,从而生成调度信息,并将该调度信息发送至物理机,以使物理机根据该调度信息中携带的虚拟机标识创建目标虚拟机,以及根据目标虚拟机的所需处理器数量为每个创建的目标虚拟机分配中央处理器(Central Processing Unit,CPU)资源,虚拟机的CPU资源是指该虚拟机所能够使用的CPU数量。
本申请实施例,提出一种基于物理机裸片信息的资源调度方法,在对虚拟机的CPU资源进行调度时,能够结合物理机自身的裸片信息,得到更加准确的调度信息,从而保证物理机最大化使用CPU资源的同时,最大化虚拟机的CPU性能。
进一步地,在本申请的一个实施例中,裸片信息包括物理机的裸片数量和物理机的裸片对应的处理器数量;根据物理机的裸片信息、待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量,生成调度信息的步骤,包括:根据裸片数量和裸片对应的处理器数量,确定物理机的总处理器数量;根据裸片对应的处理器数量、物理机的总处理器数量、待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量,生成调度信息。
在该实施例中,控制主机从物理机获取的裸片信息包括该物理机的裸片数量和该物理机的裸片的处理器数量,裸片的处理器数量也即裸片的大小,物理机的每个裸片对应的处理器数量相等。
物理机的总处理器数量可以由控制主机计算得到,具体地,将物理机的所有裸片的处理器数量叠加,得到该物理机的总处理器数量。进一步地,根据裸片对应的处理器数量、物理机的总处理器数量以及待创建虚拟机的虚拟机标识、待创建虚拟机的所需处理器数量,生成调度信息。
通过上述方式,实现结合物理机的裸片的处理器数量、待调度的物理机的总处理器数量,得到更加准确的调度信息的目的,从而提升虚拟机的CPU性能。
进一步地,在本申请的一个实施例中,裸片信息包括物理机的裸片对应的处理器数量和物理机的总处理器数量;根据物理机的裸片信息、待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量,生成调度信息的步骤,包括:根据裸片对应的处理器数量、物理机的总处理器数量、待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量,生成调度信息。
在该实施例中,控制主机从物理机获取的裸片信息包括该物理机的裸片对应的处理器数量和该物理机的总处理器数量,裸片的处理器数量也即裸片的大小。
物理机的总处理器数量可以由物理机直接发送至控制主机,无需控制主机进行计算,以降低控制主机的资源消耗。进一步地,根据裸片对应的处理器数量、物理机的总处理器数量以及待创建虚拟机的虚拟机标识、待创建虚拟机的所需处理器数量,生成调度信息。
通过上述方式,实现结合物理机的裸片的处理器数量、待调度的物理机的总处理器数量,得到更加准确的调度信息的目的,从而提升虚拟机的CPU性能。
进一步地,在本申请的一个实施例中,根据裸片对应的处理器数量、物理机的总处理器数量、待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量,生成调度信息的步骤,包括:遍历待创建虚拟机的虚拟机标识,对于任一待创建虚拟机,将待创建虚拟机的所需处理器数量与裸片的处理器数量进行比较;在待创建虚拟机的所需处理器数量满足预设条件的情况下,将待创建虚拟机的虚拟机标识存储至调度集合;在第一所需处理器总量等于总处理器数量的情况下,遍历结束,并将调度集合中的待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量,作为调度信息;其中,第一所需处理器总量为调度集合中的所有待创建虚拟机的所需处理器数量的总和,预设条件为待创建虚拟机的所需处理器数量等于裸片的处理器数量,或者待创建虚拟机的所需处理器数量为裸片的处理器数量的倍数。
在该实施例中,遍历候选虚拟机列表中待创建虚拟机的虚拟机标识,对于候选虚拟机列表中的每一个待创建虚拟机,将待创建虚拟机的所需处理器数量与裸片的处理器数量进行比较,如果待创建虚拟机的所需处理器数量满足预设条件,也即,待创建虚拟机的所需处理器数量等于裸片的处理器数量,或者待创建虚拟机的所需处理器数量为裸片的处理器数量的倍数的情况下,将该待创建虚拟机的虚拟机标识存储至调度集合。
在遍历的过程中,如果调度集合中的每一个待创建虚拟机的所需处理器数量的加和等于总处理器数量,则停止遍历,并将调度集合中的所有待创建虚拟机作为目标虚拟机,从而生成包括有目标虚拟机的虚拟机标识以及目标虚拟机的所需处理器数量的调度信息,并发送至物理机,使得物理机根据上述虚拟机标识,创建对应的目标虚拟机,并且为每个创建的目标虚拟机分配对应的CPU数量。
通过上述方式,将虚拟机的所有CPU数量都调度在最小个数的物理机裸片上,从而保证物理机最大化使用CPU资源,以及最大化虚拟机的CPU性能。
进一步地,在本申请的一个实施例中,根据裸片对应的处理器数量、物理机的总处理器数量、待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量,生成调度信息的步骤,还包括:在所有待创建虚拟机的所需处理器数量均不满足预设条件的情况下,遍历所述待创建虚拟机的虚拟机标识,根据待创建虚拟机的所需处理器数量和裸片的处理器数量,将至少一个待创建虚拟机划分为一个虚拟机组,使裸片的处理器数量与虚拟机组的第二所需处理器总量的差值小于或等于预设阈值;在第三所需处理器总量等于总处理器数量的情况下,遍历结束,将划分出的至少一个虚拟机组中的待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量,作为调度信息;其中,第二所需处理器总量为虚拟机组中的所有待创建虚拟机的所需处理器数量的总和,第三所需处理器总量为划分出的至少一个虚拟机组的所有待创建虚拟机的所需处理器数量的总和。
在该实施例中,如果候选虚拟机列表中的所有待创建虚拟机的所需处理器数量均不满足预设条件,则遍历候选虚拟机列表中待创建虚拟机的虚拟机标识,将所需处理器数量的总和小于或等于裸片的处理器数量的一个或几个待创建虚拟机划分为一个虚拟机组,从而划分出至少一个虚拟机组。需要说明的是,一个虚拟机组里的一个或几个待创建虚拟机所需处理器数量的总和可以小于裸片的处理器数量,但二者差值要小于预设阈值,也即一组里的所需处理器的总数量要接近裸片的处理器数量,以保证能最大化地利用裸片。
在遍历的过程中,在划分出的所有虚拟机组包括的每一个待创建虚拟机的所需处理器数量的总和等于总处理器数量的情况下,停止遍历,并将划分出的所有虚拟机组中的每个待创建虚拟机均作为目标虚拟机,从而生成包括有目标虚拟机的虚拟机标识以及目标虚拟机的所需处理器数量的调度信息,并发送至物理机,使得物理机根据上述虚拟机标识,创建对应的目标虚拟机,并且为每个创建的目标虚拟机分配对应的CPU数量。
通过上述方式,将虚拟机的所有CPU数量都调度在最小个数的物理机裸片上,从而保证物理机最大化使用CPU资源,以及最大化虚拟机的CPU性能。
本申请实施例提供一种资源调度方法,用于物理机,如图2所示,该资源调度方法包括:
步骤202,接收控制主机发送的信息采集请求,信息采集请求中携带有控制主机的互联网协议地址;
步骤204,根据信息采集请求采集物理机的裸片信息,并根据互联网协议地址将裸片信息发送至控制主机,以供控制主机根据裸片信息生成调度信息;
步骤206,接收控制主机反馈的调度信息,其中调度信息包括目标虚拟机的虚拟机标识和目标虚拟机的所需处理器数量;
步骤208,根据虚拟机标识建立目标虚拟机,以及根据所需处理器数量为目标虚拟机分配处理器。
在该实施例中,该资源调度方法应用于物理机,物理机在接收到控制主机发送的信息采集请求后,采集并向控制主机发送其自身的裸片信息,以使控制主机能够根据该裸片信息生成调度信息,调度信息包括目标虚拟机的虚拟机标识和目标虚拟机的所需处理器数量。进一步地,接收控制主机下发的调度信息,根据该调度信息完成创建目标虚拟机以及为创建的目标虚拟机分配处理器资源的任务。
本申请实施例,提出一种基于物理机裸片信息的资源调度方法,在对虚拟机的CPU资源进行调度时,能够结合物理机裸片信息,得到更加准确的调度信息,从而保证物理机最大化使用CPU资源的同时,最大化虚拟机的CPU性能。
进一步地,在本申请的一个实施例中,根据信息采集请求采集物理机的裸片信息的步骤,具体包括:响应于信息采集请求,读取物理机的第三级缓存的处理器文件,以获取裸片信息,其中裸片信息包括物理机的裸片对应的处理器数量。
在该实施例中,响应于信息采集请求,读取物理机的第三级缓存的处理器,以获取物理机的每个裸片所包含的处理器数量。具体地,读取第三级缓存的处理器文件/sys/devices/system/cpu/cpu*/cache/index3/shared_cpu_list,该文件每层目录依次为系统、设备、子系统、CPU、具体CPU、缓存、第三级缓存、共享该第三级缓存的CPU。其中,该文件内所包含的CPU节点都是在同一个物理机裸片上。
通过上述方式,实现快速、准确地获取裸片信息的目的。
进一步地,在本申请的一个实施例中,裸片信息还包括裸片数量或总处理器数量。
在该实施例中,裸片信息还包括裸片数量或总处理器数量。一种情况下,物理机将裸片数量以及每个裸片所包含的处理器数量发送至控制主机,使得控制主机能够根据这两个信息计算出总处理器数量,控制主机进而再根据裸片的处理器数量和总处理器数量确定调度信息。另一种情况下,物理机将其总处理器数量以及每个裸片所包含的处理器数量发送至控制主机,使得控制主机无需计算总处理器数量,以降低控制主机的资源消耗,控制主机进而再根据裸片的处理器数量和总处理器数量确定调度信息。
本申请实施例,通过物理机将上述裸片信息上传至控制主机以生成调度信息,使得能够将虚拟机的所有CPU数量都调度在最小个数的物理机裸片上,从而保证物理机最大化使用CPU资源,以及最大化虚拟机的CPU性能。
需要说明的是,本申请实施例提供的资源调度方法,执行主体可以为资源调度装置,或者,该资源调度装置中的用于执行资源调度方法的控制模块。本申请实施例中以资源调度装置执行资源调度方法为例,说明本申请实施例提供的资源调度装置。
本申请实施例提供一种资源调度装置,用于控制主机,如图3所示,该资源调度装置300包括:
第一接收模块302,用于接收用户设备发送的资源调度请求,资源调度请求中携带有待进行资源调度的物理机的物理机标识、待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量;
确定模块304,用于根据资源调度请求中携带的物理机标识,向物理机发送信息采集请求;
第二接收模块306,用于接收物理机根据信息采集请求所反馈的物理机的裸片信息;
生成模块308,用于根据物理机的裸片信息、待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量,生成调度信息,调度信息包括目标虚拟机的虚拟机标识和目标虚拟机的所需处理器数量;
发送模块310,用于将调度信息发送至物理机,调度信息用于指示物理机根据目标虚拟机的虚拟机标识建立目标虚拟机以及根据所需处理器数量为目标虚拟机分配处理器。
在该实施例中,控制主机接收由用户设备发送的资源调度请求,该资源调度请求中携带有用户需要进行资源调度的物理机的物理机标识、待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量,其中待创建虚拟机可以为一个或多个,进而向该物理机标识对应的物理机发送信息采集请求,物理机接收到信息采集请求后会采集自身的裸片信息发送至控制主机。进一步地,控制主机根据裸片信息、待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量确定目标虚拟机以及目标虚拟机的所需处理器数量,从而生成调度信息,也即能够结合物理机裸片信息,得到更加准确的调度信息。再将该调度信息发送至物理机,以使物理机根据该调度信息中携带的虚拟机标识创建目标虚拟机,以及根据目标虚拟机的所需处理器数量为每个创建的目标虚拟机分配所需处理器数量,从而保证物理机最大化使用CPU资源的同时,最大化虚拟机的CPU性能。
进一步地,在本申请的一个实施例中,裸片信息包括物理机的裸片数量和物理机的裸片对应的处理器数量;生成模块308,具体用于:根据裸片数量和裸片对应的处理器数量,确定物理机的总处理器数量;根据裸片对应的处理器数量、物理机的总处理器数量、待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量,生成调度信息。
进一步地,在本申请的一个实施例中,裸片信息包括物理机的裸片对应的处理器数量和物理机的总处理器数量;生成模块308,具体用于:根据裸片对应的处理器数量、物理机的总处理器数量、待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量,生成调度信息。
进一步地,在本申请的一个实施例中,生成模块308,具体用于:遍历待创建虚拟机的虚拟机标识,对于任一待创建虚拟机,将待创建虚拟机的所需处理器数量与裸片的处理器数量进行比较;在待创建虚拟机的所需处理器数量满足预设条件的情况下,将待创建虚拟机的虚拟机标识存储至调度集合;在第一所需处理器总量等于总处理器数量的情况下,遍历结束,并将调度集合中的待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量,作为调度信息;其中,第一所需处理器总量为调度集合中的所有待创建虚拟机的所需处理器数量的总和,预设条件为待创建虚拟机的所需处理器数量等于裸片的处理器数量,或者待创建虚拟机的所需处理器数量为裸片的处理器数量的倍数。
进一步地,在本申请的一个实施例中,生成模块308,还用于:在所有待创建虚拟机的所需处理器数量均不满足预设条件的情况下,遍历待创建虚拟机的虚拟机标识,根据待创建虚拟机的所需处理器数量和裸片的处理器数量,将至少一个待创建虚拟机划分为一个虚拟机组,使裸片的处理器数量与虚拟机组的第二所需处理器总量的差值小于或等于预设阈值;在第三所需处理器总量等于总处理器数量的情况下,遍历结束,将划分出的至少一个虚拟机组中的待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量,作为调度信息;其中,第二所需处理器总量为虚拟机组中的所有待创建虚拟机的所需处理器数量的总和,第三所需处理器总量为划分出的至少一个虚拟机组的所有待创建虚拟机的所需处理器数量的总和。
本申请实施例提供一种资源调度装置,用于物理机,如图4所示,该资源调度装置400包括:
接收模块402,用于接收控制主机发送的信息采集请求,信息采集请求中携带有控制主机的互联网协议地址;
采集模块404,用于根据信息采集请求采集物理机的裸片信息;
发送模块406,用于根据互联网协议地址将裸片信息发送至控制主机,以供控制主机根据裸片信息生成调度信息;
接收模块402,还用于接收控制主机反馈的调度信息,其中调度信息包括目标虚拟机的虚拟机标识和目标虚拟机的所需处理器数量;
处理模块408,用于根据虚拟机标识建立目标虚拟机,以及根据所需处理器数量为目标虚拟机分配处理器。
在该实施例中,该资源调度方法应用于物理机,物理机在接收到控制主机发送的信息采集请求后,采集并向控制主机发送其自身的裸片信息,以使控制主机能够根据该裸片信息生成调度信息,调度信息包括目标虚拟机的虚拟机标识和目标虚拟机的所需处理器数量。进一步地,接收控制主机下发的调度信息,根据该调度信息完成创建目标虚拟机以及为创建的目标虚拟机分配处理器资源的任务。
本申请实施例,提出一种基于物理机裸片信息的资源调度方法,在对虚拟机的CPU资源进行调度时,能够结合物理机裸片信息,得到更加准确的调度信息,从而保证物理机最大化使用CPU资源的同时,最大化虚拟机的CPU性能。
进一步地,在本申请的一个实施例中,采集模块404,具体用于:响应于信息采集请求,读取物理机的第三级缓存的处理器文件,以获取裸片信息,其中裸片信息包括物理机的裸片对应的处理器数量。
进一步地,在本申请的一个实施例中,裸片信息还包括裸片数量或总处理器数量。
本申请实施例中的资源调度装置可以是装置,也可以是终端中的部件、集成电路或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(Ultra-Mobile Personal Computer,UMPC)、上网本或者个人数字助理(PersonalDigital Assistant,PDA)等,非移动电子设备可以为服务器、网络附属存储器(NetworkAttached Storage,NAS)、个人计算机(Personal Computer,PC)、电视机(Television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的资源调度装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的资源调度装置能够实现图1和图2的资源调度方法实施例中实现的各个过程,为避免重复,这里不再赘述。
可选的,如图5所示,本申请实施例还提供一种电子设备500,该电子设备500为上述控制主机或上述物理机,该电子设备500包括处理器502,存储器504,存储在存储器504上并可在处理器502上运行的程序或指令,该程序或指令被处理器502执行时实现上述资源调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要注意的是,本申请实施例中的电子设备包括上述的移动电子设备和非移动电子设备。
图6为实现本申请实施例的一种电子设备的硬件结构示意图。
该电子设备600为上述控制主机或上述物理机,该电子设备600包括但不限于:射频单元602、网络模块604、音频输出单元606、输入单元608、传感器610、显示单元612、用户输入单元614、接口单元616、存储器618、以及处理器620等部件。
本领域技术人员可以理解,电子设备600还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器620逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图6中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
在该电子设备600为控制主机的情况下,其中,用户输入单元614,用于接收用户设备发送的资源调度请求,资源调度请求中携带有待进行资源调度的物理机的物理机标识、待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量;射频单元602,用于根据资源调度请求中携带的物理机标识,向物理机发送信息采集请求,以及接收物理机根据信息采集请求所反馈的物理机的裸片信息;处理器620,还用于根据物理机的裸片信息、待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量,生成调度信息,调度信息包括目标虚拟机的虚拟机标识和目标虚拟机的所需处理器数量;射频单元602,还用于将调度信息发送至物理机,使物理机根据虚拟机标识建立目标虚拟机以及根据所需处理器数量为目标虚拟机分配处理器。
在该实施例中,控制主机接收由用户设备发送的资源调度请求,该资源调度请求中携带有用户需要进行资源调度的物理机的物理机标识、待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量,其中待创建虚拟机可以为一个或多个,进而向该物理机标识对应的物理机发送信息采集请求,物理机接收到信息采集请求后会采集自身的裸片信息发送至控制主机。进一步地,控制主机根据裸片信息、待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量确定目标虚拟机以及目标虚拟机的所需处理器数量,从而生成调度信息,也即能够结合物理机裸片信息,得到更加准确的调度信息。再将该调度信息发送至物理机,以使物理机根据该调度信息中携带的虚拟机标识创建目标虚拟机,以及根据目标虚拟机的所需处理器数量为每个创建的目标虚拟机分配所需处理器数量,从而保证物理机最大化使用CPU资源的同时,最大化虚拟机的CPU性能。
进一步地,在本申请的一个实施例中,裸片信息包括物理机的裸片数量和物理机的裸片对应的处理器数量;处理器620,具体用于:根据裸片数量和裸片对应的处理器数量,确定物理机的总处理器数量;根据裸片对应的处理器数量、物理机的总处理器数量、待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量,生成调度信息。
进一步地,在本申请的一个实施例中,裸片信息包括物理机的裸片对应的处理器数量和物理机的总处理器数量;处理器620,具体用于:根据裸片对应的处理器数量、物理机的总处理器数量、待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量,生成调度信息。
进一步地,在本申请的一个实施例中,处理器620,具体用于:遍历待创建虚拟机的虚拟机标识,对于任一待创建虚拟机,将待创建虚拟机的所需处理器数量与裸片的处理器数量进行比较;在待创建虚拟机的所需处理器数量满足预设条件的情况下,将待创建虚拟机的虚拟机标识存储至调度集合;在第一所需处理器总量等于总处理器数量的情况下,遍历结束,并将调度集合中的待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量,作为调度信息;其中,第一所需处理器总量为调度集合中的所有待创建虚拟机的所需处理器数量的总和,预设条件为待创建虚拟机的所需处理器数量等于裸片的处理器数量,或者待创建虚拟机的所需处理器数量为裸片的处理器数量的倍数。
进一步地,在本申请的一个实施例中,处理器620,还用于:在所有待创建虚拟机的所需处理器数量均不满足预设条件的情况下,遍历待创建虚拟机的虚拟机标识,根据待创建虚拟机的所需处理器数量和裸片的处理器数量,将至少一个待创建虚拟机划分为一个虚拟机组,使裸片的处理器数量与虚拟机组的第二所需处理器总量的差值小于或等于预设阈值;在第三所需处理器总量等于总处理器数量的情况下,遍历结束,将划分出的至少一个虚拟机组中的待创建虚拟机的虚拟机标识以及待创建虚拟机的所需处理器数量,作为调度信息;其中,第二所需处理器总量为虚拟机组中的所有待创建虚拟机的所需处理器数量的总和,第三所需处理器总量为划分出的至少一个虚拟机组的所有待创建虚拟机的所需处理器数量的总和。
在该电子设备600为物理机的情况下,其中,射频单元602,用于接收控制主机发送的信息采集请求,信息采集请求中携带有控制主机的互联网协议地址;处理器620,用于根据信息采集请求采集物理机的裸片信息;射频单元602,还用于根据互联网协议地址将裸片信息发送至控制主机,以供控制主机根据裸片信息生成调度信息,以及接收控制主机反馈的调度信息,其中调度信息包括目标虚拟机的虚拟机标识和目标虚拟机的所需处理器数量;处理器620,还用于根据虚拟机标识建立目标虚拟机,以及根据所需处理器数量为目标虚拟机分配处理器。
在该实施例中,该资源调度方法应用于物理机,物理机在接收到控制主机发送的信息采集请求后,采集并向控制主机发送其自身的裸片信息,以使控制主机能够根据该裸片信息生成调度信息,调度信息包括目标虚拟机的虚拟机标识和目标虚拟机的所需处理器数量。进一步地,接收控制主机下发的调度信息,根据该调度信息完成创建目标虚拟机以及为创建的目标虚拟机分配处理器资源的任务。
本申请实施例,提出一种基于物理机裸片信息的资源调度方法,在对虚拟机的CPU资源进行调度时,能够结合物理机裸片信息,得到更加准确的调度信息,从而保证物理机最大化使用CPU资源的同时,最大化虚拟机的CPU性能。
进一步地,在本申请的一个实施例中,处理器620,具体用于:响应于信息采集请求,读取物理机的第三级缓存的处理器文件,以获取裸片信息,其中裸片信息包括物理机的裸片包含的处理器数量。
进一步地,在本申请的一个实施例中,裸片信息还包括裸片数量或总处理器数量。
应理解的是,本申请实施例中,射频单元602可用于收发信息或收发通话过程中的信号,具体的,接收基站的下行数据或向基站发送上行数据。射频单元602包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。
网络模块604为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
音频输出单元606可以将射频单元602或网络模块604接收的或者在存储器618中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元606还可以提供与电子设备600执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元606包括扬声器、蜂鸣器以及受话器等。
输入单元608用于接收音频或视频信号。输入单元608可以包括图形处理器(Graphics Processing Unit,GPU)6082和麦克风6084,图形处理器6082对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元612上,或者存储在存储器618(或其它存储介质)中,或者经由射频单元602或网络模块604发送。麦克风6084可以接收声音,并且能够将声音处理为音频数据,处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元602发送到移动通信基站的格式输出。
电子设备600还包括至少一种传感器610,比如指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器、光传感器、运动传感器以及其他传感器。
显示单元612用于显示由用户输入的信息或提供给用户的信息。显示单元612可包括显示面板6122,可以采用液晶显示器、有机发光二极管等形式来配置显示面板6122。
用户输入单元614可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元614包括触控面板6142以及其他输入设备6144。触控面板6142也称为触摸屏,可收集用户在其上或附近的触摸操作。触控面板6142可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器620,接收处理器620发来的命令并加以执行。其他输入设备6144可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
进一步的,触控面板6142可覆盖在显示面板6122上,当触控面板6142检测到在其上或附近的触摸操作后,传送给处理器620以确定触摸事件的类型,随后处理器620根据触摸事件的类型在显示面板6122上提供相应的视觉输出。触控面板6142与显示面板6122可作为两个独立的部件,也可以集成为一个部件。
接口单元616为外部装置与电子设备600连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元616可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到电子设备600内的一个或多个元件或者可以用于在电子设备600和外部装置之间传输数据。
存储器618可用于存储软件程序以及各种数据。存储器618可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据移动终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器618可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器620通过运行或执行存储在存储器618内的软件程序和/或模块,以及调用存储在存储器618内的数据,执行电子设备600的各种功能和处理数据,从而对电子设备600进行整体监控。处理器620可包括一个或多个处理单元;优选的,处理器620可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。
本申请实施例还提供一种可读存储介质,可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述资源调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,处理器为上述实施例中的电子设备中的处理器。可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等。
本申请实施例另提供了一种芯片,芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行程序或指令,实现上述资源调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
本申请实施例另提供了一种调度系统,如图7所示,该调度系统包括一个控制主机70和多个物理机80,每个物理机80包括一个CPU管理模块802和k个虚拟机(包括vm1、vm2、......、vmk),CPU管理模块802用于感知和获取该物理机80的物理机Die的拓扑信息(也即物理机Die所包含的CPU的数量),并且负责与控制主机70的CPU调度模块702进行交互,向CPU调度模块702上传物理机Die的CPU的数量,以及完成CPU调度模块702下发的控制指令。CPU调度模块702位于控制主机70上,用于收集每个物理机80上CPU管理模块802感知的物理机Die的CPU的数量,并完成基于物理机Die调度算法的执行,最后将调度信息下发到每个CPU管理模块802。
另外,物理机80的CPU管理模块802还可以感知NUMA节点,并将感知到的NUMA节点发送至控制主机70的CPU调度模块702。
上述CPU调度模块的工作过程包含如下步骤:
步骤S1:控制主机的CPU调度模块接收用户输入的要调度的物理机,CPU调度模块随即会向该物理机的CPU管理模块下发信息采集指令,CPU管理模块接收到信息采集指令后会获取物理机Die的CPU的数量并上报给控制主机的CPU调度模块。
步骤S2:控制主机的CPU调度模块接收用户输入的数据中心所有要创建的虚拟机列表以及每个虚拟机所需的CPU数量,CPU调度模块会将这些虚拟机存入候选集合(也即上述候选虚拟机列表)中。
步骤S3:控制主机的CPU调度模块执行基于物理Die的虚拟化调度方法,得出调度信息后下发到物理机的CPU管理模块。其中,基于物理Die的虚拟化调度方法具体包括:
步骤S301:依次读取候选集合中的虚拟机,如果虚拟机所需CPU的数量等于物理机Die的大小(也即物理机Die包含的CPU的数量)或其倍数,则将该虚拟机从候选集合中剔除并以每个虚拟机为单位放到调度结果数组(也即上述调度集合)中,直到调度结果数组中所有虚拟机CPU数量相加等于物理机CPU的总数量,则停止读取虚拟机,返回调度结果。
步骤S302:如果虚拟机所需CPU的数量不等于物理机Die的大小(也即物理机Die包含的CPU的数量)或其倍数,则执行回溯算法BackTracking函数,其会定义虚拟机遍历集合,在执行的过程中通过递归的方式依次将候选集合的虚拟机放入遍历集合并进行判断。如果遍历集合中虚拟机CPU数量总和等于物理机Die的大小,则以遍历集合中的所有虚拟机为单位放到调度结果数组中,遍历集合中的所有虚拟机也即上述虚拟机组,直到调度结果数组中所有虚拟机CPU数量相加等于物理机CPU的总数量,则停止读取虚拟机,返回调度结果。
基于物理Die的虚拟化调度方法的具体实现代码如下:
上述CPU管理模块的工作过程包含如下步骤:
步骤S1:物理机的CPU管理模块等待控制主机下发信息采集指令,CPU管理模块接收到信息采集指令后会获取物理机Die的拓扑信息并上报给控制主机的CPU调度模块。
另外,CPU管理模块还可以感知NUMA节点,并将感知到的NUMA节点发送至控制主机的CPU调度模块。
其中,CPU管理模块获取NUMA节点和物理Die拓扑信息的方法包括:
步骤S101:获取NUMA节点数量的方式是,获取目录/sys/devices/system/node/下名字以“node”为前缀的目录个数。
步骤S102:获取对应NUMA节点下包含的所有CPU节点的方法是,获取目录/sys/devices/system/node/node*/下名字以“cpu”为前缀的目录,目录名包含的数字就是CPU节点号,“node”是指NUMA节点目录,“node*”是指具体的节点。
步骤S103:获取每个CPU所在物理Die的方法是,读取文件/sys/devices/system/cpu/cpu*/cache/index3/shared_cpu_list,该文件内所包含的CPU节点都是在同一个物理Die上。
步骤S2:物理机的CPU管理模块等待控制主机下发CPU调度结果,CPU管理模块接收到指令后按照调度结果创建虚拟机并以物理Die为单位进行绑核。
本申请实施例,在对虚拟机CPU进行调度时,可以感知到物理机CPU关于Die的拓扑信息,从而能够根据物理Die来制定调度虚拟机CPU的策略,保证虚拟机能够运行在最小个数的物理Die上,以提升虚拟机的CPU性能,从而提升系统整体的CPU性能。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。