CN108536525A - 一种宿主机调度方法及装置 - Google Patents

一种宿主机调度方法及装置 Download PDF

Info

Publication number
CN108536525A
CN108536525A CN201710120479.6A CN201710120479A CN108536525A CN 108536525 A CN108536525 A CN 108536525A CN 201710120479 A CN201710120479 A CN 201710120479A CN 108536525 A CN108536525 A CN 108536525A
Authority
CN
China
Prior art keywords
target
value
host
cpu usage
subregion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710120479.6A
Other languages
English (en)
Other versions
CN108536525B (zh
Inventor
申航
眭聚磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Kingsoft Cloud Network Technology Co Ltd, Beijing Kingsoft Cloud Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN201710120479.6A priority Critical patent/CN108536525B/zh
Publication of CN108536525A publication Critical patent/CN108536525A/zh
Application granted granted Critical
Publication of CN108536525B publication Critical patent/CN108536525B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供了一种宿主机调度方法及装置,该方法中,在获得创建目标云服务的请求后,首先确定各个宿主机当前的目标权重值,再根据各个宿主机当前的目标权重值,确定用于创建该目标云服务的宿主机,完成宿主机调度;其中,每一宿主机的目标权重值为基于该宿主机的CPU使用率所确定的。本发明实施例提供的方案中,宿主机目标权重值的确定方法中考虑了宿主机的CPU使用率,在进行宿主机调度的过程中,会选择CPU使用率低的宿主机来创建云服务,减少出现CPU消耗高的云服务影响同宿主机内其他云服务CPU性能的问题,保证云服务的CPU性能。

Description

一种宿主机调度方法及装置
技术领域
本发明涉及计算机技术领域,特别是涉及一种宿主机调度方法及装置。
背景技术
信息化的不断发展使得人们对计算和存储等资源的需求急速增长,在现有的计算机领域中,人们需要投入更多的硬件设备,以及更多的机房环境设备,因此,运行维护成本和人力成本也相应增加,为了节约成本,云技术越来越多地应用到计算机领域中。众所周知,云服务提供商配置有多个宿主机,云服务提供商将多个宿主机的资源通过云技术配置在云端,并根据用户需要在宿主机中为用户创建相应的云服务,例如,为用户创建虚拟主机或数据库。
云服务行业中,宿主机调度即为选择用以创建云服务的宿主机,现有的宿主机调度方法可以通过用于管理所有宿主机的管理服务器实现,管理服务器在进行宿主机调度时,首先需要确定各个宿主机的权重值,然后根据各个宿主机的权重值去选择合适的宿主机,例如,选择权重值最小的宿主机作为用以创建云服务的宿主机。在现有技术中,宿主机权重值为根据可用CPU(Central Processing Unit,中央处理器)核数、可用内存量以及可用磁盘量中的至少一种可用资源量而确定的,其中,可用资源量越大,所确定的宿主机的权重值越小。
通常情况下,应用上述方式可以成功实现宿主机调度,但是,有些情况下宿主机中会存在一部分CPU消耗高的云服务,占用宿主机上CPU的资源,影响了其他云服务的CPU性能。
发明内容
本发明实施例的目的在于提供一种宿主机调度方法及装置,以根据宿主机的CPU使用率来确定宿主机的权重值,进而在此基础上完成宿主机调度过程,减少出现CPU消耗高的云服务影响同宿主机内其他云服务CPU性能的问题。具体技术方案如下:
为达上述目的,第一方面,本发明实施例提供了一种宿主机调度方法,所述方法包括:
获得创建目标云服务的请求后,确定各个宿主机当前的目标权重值;其中,每一宿主机的目标权重值为基于该宿主机的CPU使用率所确定的;
根据各个宿主机当前的目标权重值,确定用于创建所述目标云服务的宿主机,完成宿主机调度。
优选的,任意一个宿主机对应的目标权重值通过以下方式确定:
监控目标宿主机的CPU使用率,获得当前时刻前第一预设时长内所述目标宿主机的CPU使用率的参考值;
按照预先划分的各个分区对应的数值范围,确定所述参考值所处的分区为目标分区;其中,各个分区为划分CPU使用率的取值范围所获得的;
基于所述目标宿主机当前的目标可用资源信息,确定所述目标宿主机的目标原始权重值;其中,所述目标可用资源信息为不包括CPU使用率的可用资源信息;
确定所述目标分区对应的目标附加权重值;其中,每一分区对应的附加权重值为预先设置的正值,对于任意两个分区,数值大的分区所对应的附加权重值大于数值小的分区所对应的附加权重值;
基于所述目标原始权重值及所述目标附加权重值,确定所述目标宿主机的目标权重值。
优选的,所述参考值包括峰值和/或平均值。
作为第一种实现方式,优选的,当所述参考值包括峰值时,所述监控目标宿主机的CPU使用率,获得当前时刻前第一预设时长内所述目标宿主机的CPU使用率的参考值的步骤,包括:
监控目标宿主机的CPU使用率,获得当前时刻前第一预设时长内所述目标宿主机的CPU使用率的各个目标平均峰值;其中,每个目标平均峰值为:每间隔第二预设时长所获得的该第二预设时长内所述目标宿主机的CPU使用率的平均峰值,所述第二预设时长小于所述第一预设时长;
计算第一预设时长内所获得的各个目标平均峰值的平均值,并将计算得到的平均值确定为第一预设时长内所述目标宿主机的CPU使用率的峰值。
作为第一种实现方式,优选的,当所述参考值包括峰值时,所述监控目标宿主机的CPU使用率,获得当前时刻前第一预设时长内所述目标宿主机的CPU使用率的参考值的步骤,包括:
监控目标宿主机的CPU使用率,获得当前时刻前第一预设时长内所述目标宿主机的CPU使用率的各组目标监控值,其中,每组目标监控值包括:每间隔第二预设时长所获得的该第二预设时长内所述目标宿主机的CPU使用率的各个监控值,所述第二预设时长小于所述第一预设时长;
确定每组目标监控值中的第N大监控值,其中,N为预设值;
确定各个第N大监控值中的最大值为所述目标宿主机的CPU使用率的峰值。
优选的,各个分区所对应的附加权重值的设置方式为:
根据原始权重值的确定方式,获得宿主机的最大原始权重值;
以所述最大原始权重值为目标差值的下限值,设置各个分区所对应的附加权重值,其中,所述目标差值为相邻两个分区所对应的附加权重值的差值。
优选的,所述基于所述目标原始权重值及所述目标附加权重值,确定所述目标宿主机的目标权重值的步骤,包括:
确定所述目标宿主机的目标权重值为:所述目标原始权重值与所述目标附加权重值的和值。
优选的,所述以所述最大原始权重值为目标差值的下限值,设置各个分区所对应的附加权重值的步骤,包括:
以所述最大原始权重值为目标差值的下限值,并以所述最大原始权重值为所述目标附加权重值的下限值,设置各个分区所对应的附加权重值;
所述基于所述目标原始权重值及所述目标附加权重值,确定所述目标宿主机的目标权重值的步骤,包括:
接收用于指定分区的指令;
判断所述指令所指定的分区是否与所述目标分区相同;
若为是,确定所述目标宿主机的目标权重值为所述目标原始权重值;
若为否,确定所述目标宿主机的目标权重值为:所述目标原始权重值与所述目标分区对应的附加权重值的和值。
第二方面,本发明实施例提供了一种宿主机调度装置,所述装置包括:
第一确定模块,用于获得创建目标云服务的请求后,确定各个宿主机当前的目标权重值;其中,每一宿主机的目标权重值为基于该宿主机的CPU使用率所确定的;
第二确定模块,用于根据各个宿主机当前的目标权重值,确定用于创建所述目标云服务的宿主机,完成宿主机调度。
优选的,所述装置还包括:
第一获得模块,用于监控目标宿主机的CPU使用率,获得当前时刻前第一预设时长内所述目标宿主机的CPU使用率的参考值,其中,所述目标宿主机为任意一个宿主机;
第三确定模块,用于按照预先划分的各个分区对应的数值范围,确定所述参考值所处的分区为目标分区;其中,各个分区为划分CPU使用率的取值范围所获得的;
第四确定模块,用于基于所述目标宿主机当前的目标可用资源信息,确定所述目标宿主机的目标原始权重值;其中,所述目标可用资源信息为不包括CPU使用率的可用资源信息;
第五确定模块,用于确定所述目标分区对应的目标附加权重值;其中,每一分区对应的附加权重值为预先设置的正值,对于任意两个分区,数值大的分区所对应的附加权重值大于数值小的分区所对应的附加权重值;
第六确定模块,用于基于所述目标原始权重值及所述目标附加权重值,确定所述目标宿主机的目标权重值。
优选的,所述参考值包括峰值和/或平均值。
作为第一种实现方式,优选的,当所述参考值包括峰值时,所述第一获得模块,包括:
第一获得子模块,用于监控目标宿主机的CPU使用率,获得当前时刻前第一预设时长内所述目标宿主机的CPU使用率的各个目标平均峰值;其中,每个目标平均峰值为:每间隔第二预设时长所获得的该第二预设时长内所述目标宿主机的CPU使用率的平均峰值,所述第二预设时长小于所述第一预设时长;
第一确定子模块,用于计算第一预设时长内所获得的各个目标平均峰值的平均值,并将计算得到的平均值确定为第一预设时长内所述目标宿主机的CPU使用率的峰值。
作为第二种实现方式,优选的,当所述参考值包括峰值时,所述第一获得模块,包括:
第二获得子模块,用于监控目标宿主机的CPU使用率,获得当前时刻前第一预设时长内所述目标宿主机的CPU使用率的各组目标监控值,其中,每组目标监控值包括:每间隔第二预设时长所获得的该第二预设时长内所述目标宿主机的CPU使用率的各个监控值,所述第二预设时长小于所述第一预设时长;
第二确定子模块,用于确定每组目标监控值中的第N大监控值,其中,N为预设值;
第三确定子模块,用于确定各个第N大监控值中的最大值为所述目标宿主机的CPU使用率的峰值。
优选的,所述装置还包括:
第二获得模块,用于根据原始权重值的确定方式,获得宿主机的最大原始权重值;
设置模块,用于以所述最大原始权重值为目标差值的下限值,设置各个分区所对应的附加权重值,其中,所述目标差值为相邻两个分区所对应的附加权重值的差值。
优选的,所述第六确定模块,具体用于:
确定所述目标宿主机的目标权重值为:所述目标原始权重值与所述目标附加权重值的和值。
优选的,所述设置模块,具体用于:
以所述最大原始权重值为目标差值的下限值,并以所述最大原始权重值为所述目标附加权重值的下限值,设置各个分区所对应的附加权重值;
所述第六确定模块,包括:
接收子模块,用于接收用于指定分区的指令;
判断子模块,用于判断所述指令所指定的分区是否与所述目标分区相同;
第四确定子模块,用于在所述判断子模块的判断结果为是的情况下,确定所述目标宿主机的目标权重值为所述目标原始权重值;
第五确定子模块,用于在所述判断子模块的判断结果为否的情况下,确定所述目标宿主机的目标权重值为:所述目标原始权重值与所述目标分区对应的附加权重值的和值。
由以上可见,本发明实施例提供的方案中,在获得创建目标云服务的请求后,首先确定各个宿主机当前的目标权重值,再根据各个宿主机当前的目标权重值,确定用于创建该目标云服务的宿主机,完成宿主机调度;其中,每一宿主机的目标权重值为基于该宿主机的CPU使用率所确定的。与现有技术相比,本发明实施例提供的方案中,宿主机目标权重值的确定方法中考虑了宿主机的CPU使用率,在进行宿主机调度的过程中,会选择CPU使用率低的宿主机来创建云服务,减少出现CPU消耗高的云服务影响同宿主机内其他云服务CPU性能的问题,保证云服务的CPU性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种宿主机调度方法的流程示意图;
图2为本发明实施例提供的宿主机目标权重值的确定方式所对应的第一种流程示意图;
图3为本发明实施例提供的分区附加权重值的设置方式所对应的流程示意图;
图4为本发明实施例提供的宿主机目标权重值的确定方式所对应的第二种流程示意图;
图5为本发明实施例提供的一种宿主机调度装置的结构示意图;
图6为本发明实施例提供的用于确定宿主机目标权重值的装置的第一种结构示意图;
图7为本发明实施例提供的用于确定分区附加权重值的装置的结构示意图;
图8为本发明实施例提供的用于确定宿主机目标权重值的装置的第二种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面首先对本申请文件中涉及到的技术术语进行简单介绍。
在现有技术中,宿主机可以理解为担当一“宿主”身份的物理主机,宿主机中可以被创建相应的服务,该服务租用宿主机的内存、CPU、硬盘等资源;例如常见的虚拟机,虚拟机寄宿在宿主机内,其需要利用宿主机的内存、CPU、硬盘等资源才能运行。
在云技术领域,可以在宿主机中创建的云服务包括虚拟云主机、网盘、数据库等。另外,由于云服务提供商所配置的宿主机的数量庞大,通常为上千台,甚至于上万台,所以需要用于管理宿主机的管理服务器从所有宿主机中,选择出用以创建用户所需的云服务的宿主机,即宿主机调度。
下面对现有现有技术中的宿主机调度方法住进行简单介绍。
现有技术的宿主机调度方法包括:获得创建目标云服务的请求后,确定各个宿主机当前的原始权重值,基于各个宿主机的原始权重值,确定用于创建该目标云服务的宿主机,例如,选择当前原始权重值最小的宿主机作为创建该目标云服务的宿主机,进而完成宿主机调度。应该注意的是,宿主机的原始权重值为根据宿主机的可用CPU核数、可用内存量以及可用硬盘量等可用物理资源所确定的。
应用现有技术中的宿主机调度方法后,常会出现客户的云服务CPU性能差的问题,对该问题调研发现:如果宿主机的CPU使用率整体上处于50%以下,则创建在该宿主机上的云服务不会出现CPU性能差的问题,但是如果宿主机的CPU使用率整体上过高,即使宿主机的可用CPU核数、可用内存量以及可用硬盘量等可用物理资源充足,也可能会出现创建在宿主机上的云服务CPU性能差的问题。
例如,某宿主机上的可用CPU核数、可用内存量以及可用硬盘量等可用物理资源充足,基于现有宿主机调度方法,该宿主机被确定为创建虚拟机y的宿主机,但是事实上,当前该宿主机上已创建的虚拟机需要消耗大量CPU,即当前情况下,该宿主机的CPU使用率整体上过高;因而在创建虚拟机y后,虚拟机y可能存在CPU性能差的问题。
虽然现有技术中在创建云服务时,可以为云服务绑定指定的CPU内核,以保证云服务的CPU性能,但是此方法会造成宿主机的CPU资源的浪费,而且,还会造成宿主机上未绑定有指定CPU内核的云服务的可用CPU资源不足。
下面通过具体实施例对本发明进行详细介绍。
本发明实施例提供的一种宿主机调度方法,可以应用于用以调度宿主机的管理服务器,并且该管理服务器可以获知各个宿主机的资源信息,如可用硬盘量、可用CPU核数等。
图1为本发明实施例提供的一种宿主机调度方法的第一种流程示意图,如图,该方法包括:
S101:获得创建目标云服务的请求后,确定各个宿主机当前的目标权重值;其中,每一宿主机的目标权重值为基于该宿主机的CPU使用率所确定的。
应该说明,该目标云服务主要是指占用宿主机CPU资源的云服务,即计算类的云服务,例如,数据库、虚拟云主机以及MapReduce(谷歌提出的一个软件架构,用于大规模数据集的并行运算)。
CPU使用率是指计算机运行的进程对计算机CPU资源的占用率,CPU使用率越高,表明该时刻计算机上运行了越多的进程。一种情况下,当获得创建目标云服务的请求后,可以直接获得该时刻每个宿主机的CPU使用率,进而基于所获得的CPU使用率去确定各个宿主机的目标权重值。
但是,由于宿主机的CPU使用率是不断变化的,用某一时刻宿主机的CPU使用率来反映该宿主机的CPU使用率的整体情况是不准确的;所以,作为本发明的一种优选实现方式,如图2所示,在本发明实施例中,任意一个宿主机对应的目标权重值可以通过以下方式确定:
S201:监控目标宿主机的CPU使用率,获得当前时刻前第一预设时长内该目标宿主机的CPU使用率的参考值。
首先应该说明的是,该目标宿主机即为上述任意一个宿主机;该参考值是一个统计值,用以反映目标宿主机的CPU使用率在一段时间内的整体情况,在本发明实施例中,该参考值可以包括平均值和/或峰值。当然,本发明实施例并不限定参考值具体为何类数值,在实际的使用过程中,可以根据需求设定参考值的具体种类,例如,还可以是中值或最小值等。
在实际应用中,上述监控目标宿主机的CPU使用率可以理解为:按照一定的时间周期,周期性地记录目标宿主机的CPU使用率,显然的,该时间周期小于上述第一预设时长;另外,当前时刻前第一预设时长内,可以表示表示从当前时刻开始,前第一预设时长内;也可以表示从当前时刻前的任一时刻起,前第一预设时长内。
例如,该参考值为平均值,时间周期为1分钟,而第一预设时长为12小时,管理服务器在2017年2月5号14:25:20接收到创建目标云服务的请求,则针对每个宿主机,第一种情况下,管理服务器可以将根据从2017年2月5号2:25:20至2017年2月5号14:25:20这段时间内所记录的720个CPU使用率的监控值,计算出所获得的720个监控值的平均值,作为上述参考值;第二种情况下,管理服务器可以将根据从2017年2月5号1:25:20至2017年2月5号13:25:20这段时间内所记录的720个CPU使用率的监控值,计算出所获得的720个监控值的平均值,作为上述参考值。
在本发明实施例中,当该参考值包括峰值时,由于CPU使用率可能会存在异常情况,即在某一时刻突然出现一个异常的峰值,例如,CPU使用率在某一时刻突然升至100%,而后回归正常水平;为了防止将上述异常的峰值作为上述参考值,作为本发明的第一种优选实现方式,当该参考值包括峰值时,上述监控目标宿主机的CPU使用率,获得当前时刻前第一预设时长内该目标宿主机的CPU使用率的参考值S201的步骤,可以包括下述步骤一和步骤二:
步骤一:监控目标宿主机的CPU使用率,获得当前时刻前第一预设时长内该目标宿主机的CPU使用率的各个目标平均峰值;其中,每个目标平均峰值为:每间隔第二预设时长所获得的该第二预设时长内该目标宿主机的CPU使用率的平均峰值,该第二预设时长小于第一预设时长。
上述管理服务器可以按照一定的第一时间周期,周期性地记录目标宿主机CPU使用率的监控值,并且每间隔第二时间周期,确定第二时间周期内所记录的各个监控值中的峰值,而且,每间隔第二预设时长统计一次第二预设时长内所确定的各个峰值的平均值,即上述平均峰值;显然的,第二时间周期大于该第一时间周期,第二预设时长大于第二时间周期。
例如,第一时间周期为1分钟,第二时间周期为10分钟,第二预设时长为1小时,则上述管理服务器从某一起始时间点开始,每隔1分钟记录一次目标宿主机CPU使用率的监控值,每间隔10分钟确定一次此10分钟内所记录的10个监控值中的峰值,每间隔1小时统计一次此1小时内所确定的6个峰值的平均值。
在上述每间隔第二预设时长获得一次平均峰值的基础上,管理服务器很容易获得当前时刻前第一预设时长内目标宿主机的CPU使用率的各个目标平均峰值。例如,第一预设时长为24小时,第二预设时长为1小时,管理服务器所统计的平均峰值如表1所示,表1中所示的统计时刻为统计出平均峰值的时刻,所以表1中的任一统计时刻所对应的平均峰值为:该统计时刻起前一小时内所对应的平均峰值,如:序号为4的平均峰值表示:2017年1月1日13:00:00至2017年1月1日14:00:00这一统计时间段内统计得到的平均峰值。
表1
序号 统计时刻 平均峰值
1 2017年1月1日11:00:00 47.5%
2 2017年1月1日12:00:00 35.8%
3 2017年1月1日13:00:00 39.8%
4 2017年1月1日14:00:00 39.2%
5 2017年1月1日15:00:00 37.6%
6 2017年1月1日16:00:00 34.5%
7 2017年1月1日17:00:00 41.9%
8 2017年1月1日18:00:00 38.2%
9 2017年1月1日19:00:00 36.8%
10 2017年1月1日20:00:00 34.5%
11 2017年1月1日21:00:00 31.2%
12 2017年1月1日22:00:00 48.1%
13 2017年1月1日23:00:00 36.0%
14 2017年1月2日0:00:00 37.1%
15 2017年1月2日1:00:00 35.0%
16 2017年1月2日2:00:00 36.2%
17 2017年1月2日3:00:00 38.1%
18 2017年1月2日4:00:00 34.9%
19 2017年1月2日5:00:00 38.5%
20 2017年1月2日6:00:00 35.7%
21 2017年1月2日7:00:00 37.4%
22 2017年1月2日8:00:00 39.2%
23 2017年1月2日9:00:00 35.6%
24 2017年1月2日10:00:00 39.1%
如例1,当前时刻恰好为2017年1月1日10:00:00,参照表1,从当前时刻起前24小时内,即从2017年1月1日10:00:00至2017年1月2日10:00:00,表1所统计的24个平均峰值即为上述目标峰值。
但是,有些情况下,管理服务器接收到上述创建目标云服务时所对应的时刻,并非是上述任一统计时刻,则此时在上述当前时刻前第一预设时长内所统计的平均峰值并不一定都可以作为上述目标平均峰值。
如例2:当前时刻为2017年1月2日10:25:02,参照表1,从当前时刻起前24小时内,管理服务器一共统计了24个平均峰值。对应序号为1的平均峰值表示:2017年1月1日10:00:00至2017年1月1日11:00:00这一统计时间段内统计得到的平均峰值,而由于2017年1月1日10:00:00至2017年1月1日10:25:02这一时间段不属于上述第一预设时长所对应的时间段,所以对应序号为1的平均峰值不属于上述目标平均峰值,仅有序号为2~24的平均峰值为上述目标平均峰值。
步骤二:计算第一预设时长内所获得的各个目标平均峰值的平均值,并将计算得到的平均值确定为第一预设时长内该目标宿主机的CPU使用率的峰值。
即:将所有的目标平均峰值的加和值,比上目标平均峰值的数量,即可得到最终需要得到的峰值,即上述参考值。
如上例1,可以计算序号1~24所对应的24个平均峰值的加和值再比上24,得到上述参考值。如上例2,可以计算序号2~24所对应的23个平均峰值的加和值再比上23,得到上述参考值。
作为本发明的第二种优选实现方式,当参考值包括峰值时,上述监控目标宿主机的CPU使用率,获得当前时刻前第一预设时长内该目标宿主机的CPU使用率的参考值(S201)的步骤,可以包括下述第一~三步:
第一步:监控目标宿主机的CPU使用率,获得当前时刻前第一预设时长内该目标宿主机的CPU使用率的各组目标监控值,其中,每组目标监控值包括:每间隔第二预设时长所获得的该第二预设时长内该目标宿主机的CPU使用率的各个监控值,该第二预设时长小于第一预设时长。
在此实现方式中,上述管理服务器可以按照一定的时间周期,周期性地记录目标宿主机CPU使用率的监控值,并且每间隔第二预设时长将第二预设时长内所记录的各个监控值作为一组监控值;显然的,该时间周期小于第二预设时长。
如例3,该时间周期为1分钟,第二预设时长为1小时,则上述管理服务器从某一起始时间点开始,每隔1分钟记录一次目标宿主机CPU使用率的监控值,每间隔1小时将此1小时内所记录的各个监控值作为一组监控值。
可以理解,上述第一预设时长大于第二预设时长是为了保证:当前时刻前第一预设时长内管理服务器至少能确定一组监控值。如上例3,假设第一预设时长为10小时,该起始时间点为2016年6月2日8:00:00,如果当前时刻为2017年1月2日14:00:00,则从当前时刻起前10小时内,一共确定了10组监控值,且由各组的监控值都是在当前时刻起前10小时内记录的,所以此10组监控值均为目标监控值。
需要注意,如果当前时刻为2017年1月2日14:23:51,则从当前时刻起前10小时内,一共确定了10组监控值,但是其中一组监控值所对应的监控时间段为2017年1月2日4:00:00~5:00:00,而2017年1月2日4:00:00~4:23:51这一时间段不属于从当前时刻起前10小时内,故此时可以仅将其余9组监控值作为目标监控值。
第二步:确定每组目标监控值中的第N大监控值,其中,N为预设值。
可以理解,如前所述,由于所记录的CPU使用率的监控值中存在异常的峰值,而且该异常的峰值明显大于正常的CPU使用率的峰值,所以为了排除异常的峰值,在一组监控值中,不将最大的监控值作为相应时间段内CPU使用率的峰值,而是将第N大监控值作为相应时间段内CPU使用率的峰值。
N的取值可以根据实际需要确定,一般而言,一组监控值中的监控值数量越多,N的取值设置的越高。在本发明实施例中,可以先设置一个取值比率,然后用取值比率乘以一组监控值中的监控值数量,最终得到的乘积的上取整即为N。例如,一组监控值中的监控值数量为60,该取值比率为6.5%,则得到N为4。
第三步:确定各个第N大监控值中的最大值为该目标宿主机的CPU使用率的峰值。
相对于上述第一步~第三步所提供的实现方式,在实际应用中,管理服务器也可以按照一定的时间周期,周期性地记录目标宿主机CPU使用率的监控值,并且每间隔第二预设时长将第二预设时长内所记录的各个监控值作为一组监控值,更重要的,在每得到一组监控值的同时,确定该组监控值中的第N大监控值,以便于管理服务器在接收到创建目标云服务的请求时,及时获得各组目标监控值。
例如,第一预设时长为24小时,第二预设时长为1小时,上述N取值为4,对于目标宿主机,管理服务器所统计的各组监控值中的第4大监控值如表2所示,表2中所示的统计时刻为统计出一组监控值中的第4大监控值的时刻,所以表2中的任一统计时刻所对应的第4大监控值为:该统计时刻起前一小时内所对应统计时段内的第4大监控值,如:序号为6的第4大监控值表示:2017年2月8日10:00:00至2017年2月8日11:00:00这一统计时间段内统计得到的第4大监控值。
表2
序号 统计时刻 第4大监控值
1 2017年2月8日6:00:00 51.2%
2 2017年2月8日7:00:00 41.8%
3 2017年2月8日8:00:00 39.8%
4 2017年2月8日9:00:00 39.2%
5 2017年2月8日10:00:00 37.6%
6 2017年2月8日11:00:00 34.5%
7 2017年2月8日12:00:00 41.9%
8 2017年2月8日13:00:00 38.2%
9 2017年2月8日14:00:00 36.8%
10 2017年2月8日15:00:00 34.5%
11 2017年2月8日16:00:00 31.2%
12 2017年2月8日17:00:00 48.1%
13 2017年2月8日18:00:00 36.0%
14 2017年2月8日19:00:00 37.1%
15 2017年2月8日20:00:00 35.0%
16 2017年2月8日21:00:00 36.2%
17 2017年2月8日22:00:00 38.1%
18 2017年2月8日23:00:00 34.9%
19 2017年2月9日0:00:00 38.5%
20 2017年2月9日1:00:00 35.7%
21 2017年2月9日2:00:00 37.4%
22 2017年2月9日3:00:00 39.2%
23 2017年2月9日4:00:00 35.6%
24 2017年2月9日5:00:00 36.1%
如果当前时刻恰好为2017年2月9日5:00:00,参照表2,从当前时刻起前24小时内,即从2017年2月8日5:00:00至2017年2月9日5:00:00,表2中所统计的24个第4大监控值所对应的统计时间段均处于当前时刻起前24小时内,所以此时直接从上述24个第4大监控值中将最大的监控值作为上述参考值即可。
如果当前时刻为2017年2月9日5:35:26,参照表2,从当前时刻起前24小时内,即从2017年2月8日5:35:26至2017年2月9日5:35:26。对应序号为1的第4大监控值表示:2017年2月8日5:00:00至2017年2月8日6:00:00这一统计时间段内统计得到的第4大监控值,而由于2017年2月8日5:00:00至2017年2月8日5:35:26这一时间段不属于上述第一预设时长所对应的时间段,所以此时可以从上述序号为2~24的23个第4大监控值中将最大的监控值作为上述参考值即可。
当然,步骤S201的具体实现除了上述两种实现方式外,还可以使用现有技术中其他的实现方式,本发明实施例在此不再详细介绍。
S202:按照预先划分的各个分区对应的数值范围,确定该参考值所处的分区为目标分区;其中,各个分区为划分CPU使用率的取值范围所获得的。
CPU使用率的取值范围为0~100%,在本发明实施例中,可以预先将CPU使用率的取值范围划分成多个分区,每个分区对应CPU使用率的取值范围的一部分;所确定的参考值所处的分区即为目标分区。
例如,将CPU使用率的取值范围划分为4个分区:空闲区、正常区、预警区以及抢占区,其中,空闲区对应的CPU使用率为[0,15%],正常区对应的CPU使用率为(15%,30%],预警区对应的CPU使用率为(30%,50%],抢占区对应的CPU使用率为(50%,100%]。如果所确定的参考值为41.2%,则此时可以确定预警区为目标分区。
S203:基于该目标宿主机当前的目标可用资源信息,确定该目标宿主机的目标原始权重值;其中,目标可用资源信息为不包括CPU使用率的可用资源信息。
通常情况下,用以计算原始权重值的可用资源信息可以包括:可用CPU核数、可用内存量以及可用硬盘量。可以理解,可用CPU核数可以是指宿主机的CPU总核数与该宿主机中已创建的云服务所需的CPU核数的差值,同理,可用内存量可以是指宿主机的内存总量与该宿主机中已创建的云服务所需的内存量的差值,可用硬盘量可以是指宿主机的硬盘总量与该宿主机中已创建的云服务所需的硬盘量的差值。例如,宿主机的CPU总核数为20个,该宿主机中已创建有一虚拟机,该虚拟机占用两个CPU内核,则该宿主机的可用CPU核数为18个。
如例4,上述目标可用资源信息包括可用CPU核数、可用内存量以及可用硬盘量;且宿主机的原始权重值基于下述公式获得:
式中,Y表示宿主机的原始权重值,a表示该宿主机当前的可用CPU核数,A表示可被调度的所有宿主机中具有最多CPU总核数的宿主机所拥有的CPU总核数;b表示该宿主机当前的可用内存量,B表示可被调度的所有宿主机中具有最大内存总量的宿主机所拥有的内存总量;c表示该宿主机当前的可用硬盘容量,C表示可被调度的所有宿主机中具有最大硬盘总容量的宿主机所拥有的硬盘总容量。
如果对于某一宿主机X,其对应的可用CPU核数、可用内存量以及可用硬盘量分别为8个、15G以及800G,可被调度的所有宿主机中具有最多CPU总核数的宿主机所拥有的CPU总核数为16个,可被调度的所有宿主机中具有最大内存总量的宿主机所拥有的内存总量为20G;可被调度的所有宿主机中具有最大硬盘总容量的宿主机所拥有的硬盘总容量为2000G,则此时,可以通过上述公式计算宿主机X的原始权重值为:
应该说明的是,宿主机的原始权重值的计算方法属于现有技术,在实际应用中,此计算方法中涉及的计算公式也并不限于上述例4所涉及的公式,本申请仅仅以此为例进行说明,并不对本申请构成限定。
S204:确定该目标分区对应的目标附加权重值;其中,每一分区对应的附加权重值为预先设置的正值,对于任意两个分区,数值大的分区所对应的附加权重值大于数值小的分区所对应的附加权重值。
可以理解,分区为划分CPU使用率的取值范围所获得的,所以分区中的数值可以直接为CPU使用率。例如,将CPU使用率的取值范围划分为4个分区:一区、二区、三区以及四区,其中,一区对应的CPU使用率为[0,20%],二区对应的CPU使用率为(20%,40%],三区对应的CPU使用率为(40%,55%],四区对应的CPU使用率为(55%,100%],显然的,四区中的数值大于三区中的数值。
假设对于上述一区、二区、三区以及四区,预先设置各个分区对应的附加权重值分别为1000、2000、3000和4000。如果确定的目标分区为上述二区,此时可以确定目标附加权重值为2000。
S205:基于目标原始权重值及目标附加权重值,确定目标宿主机的目标权重值。
在实际应用中,目标宿主机的目标权重值可以是目标原始权重值及目标附加权重值的加权和值,即:对目标原始权重值和目标附加权重值预先设置不同的权重系数,通过下述公式计算目标权重值:
M=iY+jF;
式中,M表示目标权重值,Y表示目标原始权重值,i表示预先设置的目标原始权重值的权重系数;F表示目标附加权重值,j预先设置的目标附加权重值的权重系数。
假设预先设置的目标原始权重值的权重系数及目标附加权重值的权重系数分别为0.4及0.6,前述步骤所确定的目标原始权重值及目标附加权重值分别为3500和5000,则此时通过上述公式计算得到目标权重值为4400。
在本发明实施例中,上述基于目标原始权重值及目标附加权重值,确定该目标宿主机的目标权重值(S205)的步骤,可以包括:
确定该目标宿主机的目标权重值为:目标原始权重值与目标附加权重值的和值。
前述步骤所确定的目标原始权重值及目标附加权重值分别为5500和4000,则此时通过上述公式计算得到目标权重值为9500。
当然,上述计算目标权重值的方法仅是对步骤S205的实现方法的举例说明,本发明实施例并不限定获得目标权重值的具体方法,但是需要保证:对于两个具有相同原始权重值的宿主机,对应分区的数值较小的宿主机所对应目标权重值,小于对应分区的数值较大的宿主机所对应目标权重值。
S102:根据各个宿主机当前的目标权重值,确定用于创建该目标云服务的宿主机,完成宿主机调度。
在进行宿主机调度的过程中,管理服务器可以将当前目标权重值最小的宿主机确定为用于创建该目标云服务的宿主机。本发明实施例中,每一分区对应的附加权重值为预先设置的正值,对于任意两个分区,数值大的分区所对应的附加权重值大于数值小的分区所对应的附加权重值,并且,对于两个具有相同原始权重值的宿主机,对应分区的数值较小的宿主机所对应目标权重值,小于对应分区的数值较大的宿主机所对应目标权重值;所以,相对于现有技术,最终所确定的用以创建目标云服务的宿主机的CPU使用率普遍较低,保证了目标云服务创建后的CPU性能。
由以上可见,本实施例提供的方案中,在获得创建目标云服务的请求后,首先确定各个宿主机当前的目标权重值,再根据各个宿主机当前的目标权重值,确定用于创建该目标云服务的宿主机,完成宿主机调度;其中,每一宿主机的目标权重值为基于该宿主机的CPU使用率所确定的。与现有技术相比,本实施例提供的方案中,宿主机目标权重值的确定方法中考虑了宿主机的CPU使用率,在进行宿主机调度的过程中,会选择CPU使用率低的宿主机来创建云服务,减少出现CPU消耗高的云服务影响同宿主机内其他云服务CPU性能的问题,保证云服务的CPU性能。
实际应用中,有些云服务的CPU性能极为重要,例如虚拟云主机,在进行宿主机的调度过程中,需要将CPU使用率作为首要的考虑因素,为此,在图1或图2任一所示方法实施例的基础上,如图3所示,各个分区所对应的附加权重值的设置方式为:
S301:根据原始权重值的确定方式,获得宿主机的最大原始权重值。
由前述内容可知,通常情况下,用以计算原始权重值的可用资源信息可以包括:可用CPU核数、可用内存量以及可用硬盘量;而对于所有可以被调度的宿主机而言,宿主机对应的可用CPU核数、可用内存量以及可用硬盘量是有上限的,例如,可用CPU核数的最大值为宿主机的CPU总核数;所以,对于任意一个宿主机,其对应原始权重值可取得的最大值是可以确定的。
例如,前述例4中提到:宿主机的原始权重值基于下述公式获得:
显然的,由此公式可得最大原始权重值,即宿主机的原始权重值可取得的最大值为10000。
S302:以最大原始权重值为目标差值的下限值,设置各个分区所对应的附加权重值,其中,目标差值为相邻两个分区所对应的附加权重值的差值。
可以理解,以最大原始权重值为目标差值的下限值,设置各个分区所对应的附加权重值后,除对应的数值最小的分区外,其余分区对应的附加权重值均大于宿主机的原始权重值,所以,在基于目标原始权重值及目标附加权重值,确定目标权重值的过程中,进一步使得管理服务器尽可能将CPU使用率较低的宿主机确定为创建目标云服务的宿主机。
例如,目标权重值为目标目标原始权重值及目标附加权重值的和值,显然的,处于不同分区的两个宿主机,数值大的分区所对应的目标权重值必然大于数值小的分区所对应的目标权重值;因而,管理服务器进行宿主机调度时,会在对应数值最低的分区中选择创建目标云服务的宿主机,以保证将要创建的宿主机的CPU性能。
在本发明实施例中,上述以最大原始权重值为目标差值的下限值,设置各个分区所对应的附加权重值(S302)的步骤,也可以包括:
以最大原始权重值为目标差值的下限值,并以最大原始权重值为目标附加权重值的下限值,设置各个分区所对应的附加权重值。
在此情况下,在图3所示方法实施例的基础上,如图4所示,上述基于目标原始权重值及目标附加权重值,确定该目标宿主机的目标权重值(S205)的步骤,可以包括:
S2051:接收用于指定分区的指令。
一种情况下,预先配置有对应于管理服务器的操作界面,操作人员可以基于此操作界面输入用于指定分区的指令,例如,发送创建目标云服务的请求的客户为云服务提供商的重要客户,或者目标云服务为对CPU性能要求较高的云服务,操作人员可以指定分区为数值最小的分区;再如,目标云服务为对CPU性能要求较低的云服务,操作人员可以指定分区为数值最大的分区。
另一种情况下,客户在发送创建目标云服务的请求中携带有用于指定分区的指令;例如,预先划分有第一~四分区,客户发送的创建目标云服务的请求中携带有指定第三分区的指令。
S2052:判断该指令所指定的分区是否与目标分区相同。
若为是,执行步骤S2053:确定目标宿主机的目标权重值为目标原始权重值。
若为否,执行步骤S2054:确定该目标宿主机的目标权重值为:目标原始权重值与目标分区对应的附加权重值的和值。
由于设置分区的附加权重值时,以最大原始权重值为目标差值的下限值,并以最大原始权重值为所述目标附加权重值的下限值,设置各个分区所对应的附加权重值;所以,任意一个分区所对应的附加权重值均大于任意一个宿主机的原始权重值。
基于此情况,对所有的宿主机执行步骤S2052~S2054后,指令所指定的分区中,各个宿主机的目标权重值分别为各个宿主机的原始权重值;而其余分区中,各个宿主机的目标权重值分别为各个宿主机的原始权重值与宿主机当前所对应分区的附加权重值的和值;显然的,指定的分区中宿主机的目标权重值必然小于其余分区中任一宿主机的目标权重值。因而,最终管理服务器会在所指定的分区中的宿主机中选择用以创建目标云服务的宿主机。
例如,预先将CPU使用率的取值范围划分为4个分区:空闲区、正常区、预警区以及抢占区,其中,空闲区对应的CPU使用率为[0,15%],正常区对应的CPU使用率为(15%,30%],预警区对应的CPU使用率为(30%,50%],抢占区对应的CPU使用率为(50%,100%]。计算获得最大原始权重值不大于1000,此时可以设置空闲区、正常区、预警区以及抢占区对应的附加权重值分别为1000、2000、3000以及4000。
假设当前有四个宿主机1~4,其分别对应的原始权重值为600、800、700以及900,如果指令指定的分区为抢占区,则宿主机1~4分别对应的目标权重值为1600、2800、3700以及900,显然的,最终管理服务器会在宿主机4中创建目标云服务。
下面通过一具体实例来对本发明实施例进行简单介绍。
操作人员预先将CPU使用率的取值范围划分为4个分区:空闲区、正常区、预警区以及抢占区,其中,空闲区对应的CPU使用率为[0,15%],正常区对应的CPU使用率为(15%,30%],预警区对应的CPU使用率为(30%,50%],抢占区对应的CPU使用率为(50%,100%]。
预先设定上述第一预设时长为24小时,并设定宿主机原始权重值的计算公式为前述例4中所提及的公式:此时可以设定空闲区、正常区、预警区以及抢占区对应的附加权重值分别为10000、20000、30000以及40000。
管理服务器针对每个宿主机,从同一时刻作为时间起点,每间隔一分钟记录一次宿主机CPU使用率的监控值,并且每间隔1小时确定此1小时内统计的60个监控值中的第5大值,在2017年2月2日12:23:15,管理服务器接收到创建虚拟机的请求,且请求中包含指定正常区的指令。
为了方便说明,仅以宿主机x进行举例说明,对于宿主机x,管理服务器在各个时间点所统计的各个第5大监控值如下表3所示。
表3
序号 统计时刻 第5大监控值
1 2017年2月1日13:00:00 47.2%
2 2017年2月1日14:00:00 49.2%
3 2017年2月1日15:00:00 42.8%
4 2017年2月1日16:00:00 42.2%
5 2017年2月1日17:00:00 39.6%
6 2017年2月1日18:00:00 41.5%
7 2017年2月1日19:00:00 42.9%
8 2017年2月1日20:00:00 45.2%
9 2017年2月1日21:00:00 35.8%
10 2017年2月1日22:00:00 38.5%
11 2017年2月1日23:00:00 42.2%
12 2017年2月2日0:00:00 47.1%
13 2017年2月2日1:00:00 35.0%
14 2017年2月2日2:00:00 37.1%
15 2017年2月2日3:00:00 38.0%
16 2017年2月2日4:00:00 36.2%
17 2017年2月2日5:00:00 39.1%
18 2017年2月2日6:00:00 48.9%
19 2017年2月2日7:00:00 38.5%
20 2017年2月2日8:00:00 38.7%
21 2017年2月2日9:00:00 37.4%
22 2017年2月2日10:00:00 46.2%
23 2017年2月2日11:00:00 35.6%
24 2017年2月2日12:00:00 41.1%
参照表3,从当前时刻起前24小时内,即从2017年2月1日12:23:15至2017年2月2日12:23:15。对应序号为1的第5大监控值表示:2017年2月1日12:00:00至2017年2月1日13:00:00这一统计时间段内统计得到的第5大监控值,而由于2017年2月1日12:00:00至2017年2月1日12:23:15这一时间段不属于上述第一预设时长所对应的时间段,所以此时可以从上述序号为2~24的23个第5大监控值中将最大的监控值49.6%作为上述参考值。
由于49.6%处于(30%,50%]内,所以管理服务器确定预警区为目标分区。管理服务器计算得到宿主机x当前的原始权重值为4500;由于目标分区并非指令所指定的分区,所以宿主机x的目标权重值最终为34500。
另外,对于其他宿主机,如果其所对应的目标分区为正常区,可以直接将该宿主机的原始权重值确定为该宿主机对应的目标权重值,否则,将该宿主机对应的目标分区所对应的附件权重值,与宿主机的原始权重值的和值,确定为该宿主机对应的目标权重值。
在确定了所有宿主机分别对应的目标权重值后,管理服务器可以直接从所有宿主机中选择目标权重值最小的宿主机为创建该虚拟机的宿主机,完成宿主机的调度。
相应于图1所示方法实施例,本发明实施例还提供了一种宿主机调度装置,如图5所示,所述装置包括:
第一确定模块110,用于获得创建目标云服务的请求后,确定各个宿主机当前的目标权重值;其中,每一宿主机的目标权重值为基于该宿主机的CPU使用率所确定的;
第二确定模块120,用于根据各个宿主机当前的目标权重值,确定用于创建所述目标云服务的宿主机,完成宿主机调度。
相应于图2所示方法实施例,如图6所示,所述装置还可以包括:
第一获得模块210,用于监控目标宿主机的CPU使用率,获得当前时刻前第一预设时长内所述目标宿主机的CPU使用率的参考值,其中,所述目标宿主机为任意一个宿主机;
第三确定模块220,用于按照预先划分的各个分区对应的数值范围,确定所述参考值所处的分区为目标分区;其中,各个分区为划分CPU使用率的取值范围所获得的;
第四确定模块230,用于基于所述目标宿主机当前的目标可用资源信息,确定所述目标宿主机的目标原始权重值;其中,所述目标可用资源信息为不包括CPU使用率的可用资源信息;
第五确定模块240,用于确定所述目标分区对应的目标附加权重值;其中,每一分区对应的附加权重值为预先设置的正值,对于任意两个分区,数值大的分区所对应的附加权重值大于数值小的分区所对应的附加权重值;
第六确定模块250,用于基于所述目标原始权重值及所述目标附加权重值,确定所述目标宿主机的目标权重值。
在实际应用中,具体的,所述参考值包括峰值和/或平均值。
在实际应用中,作为第一种实现方式,具体的,当所述参考值包括峰值时,所述第一获得模块210可以包括第一获得子模块和第一确定子模块(图中未示出):
该第一获得子模块,用于监控目标宿主机的CPU使用率,获得当前时刻前第一预设时长内所述目标宿主机的CPU使用率的各个目标平均峰值;其中,每个目标平均峰值为:每间隔第二预设时长所获得的该第二预设时长内所述目标宿主机的CPU使用率的平均峰值,所述第二预设时长小于所述第一预设时长;
该第一确定子模块,用于计算第一预设时长内所获得的各个目标平均峰值的平均值,并将计算得到的平均值确定为第一预设时长内所述目标宿主机的CPU使用率的峰值。
在实际应用中,作为第二种实现方式,具体的,当所述参考值包括峰值时,所述第一获得模块210可以包括第二获得子模块、第二确定子模块和第三确定子模块(图中未示出):
第二获得子模块,用于监控目标宿主机的CPU使用率,获得当前时刻前第一预设时长内所述目标宿主机的CPU使用率的各组目标监控值,其中,每组目标监控值包括:每间隔第二预设时长所获得的该第二预设时长内所述目标宿主机的CPU使用率的各个监控值,所述第二预设时长小于所述第一预设时长;
第二确定子模块,用于确定每组目标监控值中的第N大监控值,其中,N为预设值;
第三确定子模块,用于确定各个第N大监控值中的最大值为所述目标宿主机的CPU使用率的峰值。
相应于图3所示方法实施例,如图7所示,所述装置还可以包括:
第二获得模块310,用于根据原始权重值的确定方式,获得宿主机的最大原始权重值;
设置模块320,用于以所述最大原始权重值为目标差值的下限值,设置各个分区所对应的附加权重值,其中,所述目标差值为相邻两个分区所对应的附加权重值的差值。
在实际应用中,具体的,所述第六确定模块250可以具体用于:
确定所述目标宿主机的目标权重值为:所述目标原始权重值与所述目标附加权重值的和值。
在实际应用中,具体的,所述设置模块320可以具体用于:
以所述最大原始权重值为目标差值的下限值,并以所述最大原始权重值为所述目标附加权重值的下限值,设置各个分区所对应的附加权重值;在此情况下,相应于图4所示方法实施例,如图8所示,所述第六确定模块250可以包括:
接收子模块2501,用于接收用于指定分区的指令;
判断子模块2502,用于判断所述指令所指定的分区是否与所述目标分区相同;
第四确定子模块2503,用于在所述判断子模块2502的判断结果为是的情况下,确定所述目标宿主机的目标权重值为所述目标原始权重值;
第五确定子模块2504,用于在所述判断子模块2502的判断结果为否的情况下,确定所述目标宿主机的目标权重值为:所述目标原始权重值与所述目标分区对应的附加权重值的和值。
由以上可见,本实施例提供的方案中,在获得创建目标云服务的请求后,首先确定各个宿主机当前的目标权重值,再根据各个宿主机当前的目标权重值,确定用于创建该目标云服务的宿主机,完成宿主机调度;其中,每一宿主机的目标权重值为基于该宿主机的CPU使用率所确定的。与现有技术相比,本实施例提供的方案中,宿主机目标权重值的确定方法中考虑了宿主机的CPU使用率,在进行宿主机调度的过程中,会选择CPU使用率低的宿主机来创建云服务,减少出现CPU消耗高的云服务影响同宿主机内其他云服务CPU性能的问题,保证云服务的CPU性能。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (16)

1.一种宿主机调度方法,其特征在于,所述方法包括:
获得创建目标云服务的请求后,确定各个宿主机当前的目标权重值;其中,每一宿主机的目标权重值为基于该宿主机的CPU使用率所确定的;
根据各个宿主机当前的目标权重值,确定用于创建所述目标云服务的宿主机,完成宿主机调度。
2.根据权利要求1所述的方法,其特征在于,任意一个宿主机对应的目标权重值通过以下方式确定:
监控目标宿主机的CPU使用率,获得当前时刻前第一预设时长内所述目标宿主机的CPU使用率的参考值;
按照预先划分的各个分区对应的数值范围,确定所述参考值所处的分区为目标分区;其中,各个分区为划分CPU使用率的取值范围所获得的;
基于所述目标宿主机当前的目标可用资源信息,确定所述目标宿主机的目标原始权重值;其中,所述目标可用资源信息为不包括CPU使用率的可用资源信息;
确定所述目标分区对应的目标附加权重值;其中,每一分区对应的附加权重值为预先设置的正值,对于任意两个分区,数值大的分区所对应的附加权重值大于数值小的分区所对应的附加权重值;
基于所述目标原始权重值及所述目标附加权重值,确定所述目标宿主机的目标权重值。
3.根据权利要求2所述的方法,其特征在于,所述参考值包括峰值和/或平均值。
4.根据权利要求3所述的方法,其特征在于,当所述参考值包括峰值时,所述监控目标宿主机的CPU使用率,获得当前时刻前第一预设时长内所述目标宿主机的CPU使用率的参考值的步骤,包括:
监控目标宿主机的CPU使用率,获得当前时刻前第一预设时长内所述目标宿主机的CPU使用率的各个目标平均峰值;其中,每个目标平均峰值为:每间隔第二预设时长所获得的该第二预设时长内所述目标宿主机的CPU使用率的平均峰值,所述第二预设时长小于所述第一预设时长;
计算第一预设时长内所获得的各个目标平均峰值的平均值,并将计算得到的平均值确定为第一预设时长内所述目标宿主机的CPU使用率的峰值。
5.根据权利要求3所述的方法,其特征在于,当所述参考值包括峰值时,所述监控目标宿主机的CPU使用率,获得当前时刻前第一预设时长内所述目标宿主机的CPU使用率的参考值的步骤,包括:
监控目标宿主机的CPU使用率,获得当前时刻前第一预设时长内所述目标宿主机的CPU使用率的各组目标监控值,其中,每组目标监控值包括:每间隔第二预设时长所获得的该第二预设时长内所述目标宿主机的CPU使用率的各个监控值,所述第二预设时长小于所述第一预设时长;
确定每组目标监控值中的第N大监控值,其中,N为预设值;
确定各个第N大监控值中的最大值为所述目标宿主机的CPU使用率的峰值。
6.根据权利要求2~5任一项所述的方法,其特征在于,各个分区所对应的附加权重值的设置方式为:
根据原始权重值的确定方式,获得宿主机的最大原始权重值;
以所述最大原始权重值为目标差值的下限值,设置各个分区所对应的附加权重值,其中,所述目标差值为相邻两个分区所对应的附加权重值的差值。
7.根据权利要求6所述的方法,其特征在于,所述基于所述目标原始权重值及所述目标附加权重值,确定所述目标宿主机的目标权重值的步骤,包括:
确定所述目标宿主机的目标权重值为:所述目标原始权重值与所述目标附加权重值的和值。
8.根据权利要求6所述的方法,其特征在于,所述以所述最大原始权重值为目标差值的下限值,设置各个分区所对应的附加权重值的步骤,包括:
以所述最大原始权重值为目标差值的下限值,并以所述最大原始权重值为所述目标附加权重值的下限值,设置各个分区所对应的附加权重值;
所述基于所述目标原始权重值及所述目标附加权重值,确定所述目标宿主机的目标权重值的步骤,包括:
接收用于指定分区的指令;
判断所述指令所指定的分区是否与所述目标分区相同;
若为是,确定所述目标宿主机的目标权重值为所述目标原始权重值;
若为否,确定所述目标宿主机的目标权重值为:所述目标原始权重值与所述目标分区对应的附加权重值的和值。
9.一种宿主机调度装置,其特征在于,所述装置包括:
第一确定模块,用于获得创建目标云服务的请求后,确定各个宿主机当前的目标权重值;其中,每一宿主机的目标权重值为基于该宿主机的CPU使用率所确定的;
第二确定模块,用于根据各个宿主机当前的目标权重值,确定用于创建所述目标云服务的宿主机,完成宿主机调度。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第一获得模块,用于监控目标宿主机的CPU使用率,获得当前时刻前第一预设时长内所述目标宿主机的CPU使用率的参考值,其中,所述目标宿主机为任意一个宿主机;
第三确定模块,用于按照预先划分的各个分区对应的数值范围,确定所述参考值所处的分区为目标分区;其中,各个分区为划分CPU使用率的取值范围所获得的;
第四确定模块,用于基于所述目标宿主机当前的目标可用资源信息,确定所述目标宿主机的目标原始权重值;其中,所述目标可用资源信息为不包括CPU使用率的可用资源信息;
第五确定模块,用于确定所述目标分区对应的目标附加权重值;其中,每一分区对应的附加权重值为预先设置的正值,对于任意两个分区,数值大的分区所对应的附加权重值大于数值小的分区所对应的附加权重值;
第六确定模块,用于基于所述目标原始权重值及所述目标附加权重值,确定所述目标宿主机的目标权重值。
11.根据权利要求10所述的装置,其特征在于,所述参考值包括峰值和/或平均值。
12.根据权利要求11所述的装置,其特征在于,当所述参考值包括峰值时,所述第一获得模块,包括:
第一获得子模块,用于监控目标宿主机的CPU使用率,获得当前时刻前第一预设时长内所述目标宿主机的CPU使用率的各个目标平均峰值;其中,每个目标平均峰值为:每间隔第二预设时长所获得的该第二预设时长内所述目标宿主机的CPU使用率的平均峰值,所述第二预设时长小于所述第一预设时长;
第一确定子模块,用于计算第一预设时长内所获得的各个目标平均峰值的平均值,并将计算得到的平均值确定为第一预设时长内所述目标宿主机的CPU使用率的峰值。
13.根据权利要求11所述的装置,其特征在于,当所述参考值包括峰值时,所述第一获得模块,包括:
第二获得子模块,用于监控目标宿主机的CPU使用率,获得当前时刻前第一预设时长内所述目标宿主机的CPU使用率的各组目标监控值,其中,每组目标监控值包括:每间隔第二预设时长所获得的该第二预设时长内所述目标宿主机的CPU使用率的各个监控值,所述第二预设时长小于所述第一预设时长;
第二确定子模块,用于确定每组目标监控值中的第N大监控值,其中,N为预设值;
第三确定子模块,用于确定各个第N大监控值中的最大值为所述目标宿主机的CPU使用率的峰值。
14.根据权利要求10~13任一项所述的装置,其特征在于,所述装置还包括:
第二获得模块,用于根据原始权重值的确定方式,获得宿主机的最大原始权重值;
设置模块,用于以所述最大原始权重值为目标差值的下限值,设置各个分区所对应的附加权重值,其中,所述目标差值为相邻两个分区所对应的附加权重值的差值。
15.根据权利要求14所述的装置,其特征在于,所述第六确定模块,具体用于:
确定所述目标宿主机的目标权重值为:所述目标原始权重值与所述目标附加权重值的和值。
16.根据权利要求14所述的装置,其特征在于,所述设置模块,具体用于:
以所述最大原始权重值为目标差值的下限值,并以所述最大原始权重值为所述目标附加权重值的下限值,设置各个分区所对应的附加权重值;
所述第六确定模块,包括:
接收子模块,用于接收用于指定分区的指令;
判断子模块,用于判断所述指令所指定的分区是否与所述目标分区相同;
第四确定子模块,用于在所述判断子模块的判断结果为是的情况下,确定所述目标宿主机的目标权重值为所述目标原始权重值;
第五确定子模块,用于在所述判断子模块的判断结果为否的情况下,确定所述目标宿主机的目标权重值为:所述目标原始权重值与所述目标分区对应的附加权重值的和值。
CN201710120479.6A 2017-03-02 2017-03-02 一种宿主机调度方法及装置 Active CN108536525B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710120479.6A CN108536525B (zh) 2017-03-02 2017-03-02 一种宿主机调度方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710120479.6A CN108536525B (zh) 2017-03-02 2017-03-02 一种宿主机调度方法及装置

Publications (2)

Publication Number Publication Date
CN108536525A true CN108536525A (zh) 2018-09-14
CN108536525B CN108536525B (zh) 2021-01-29

Family

ID=63489215

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710120479.6A Active CN108536525B (zh) 2017-03-02 2017-03-02 一种宿主机调度方法及装置

Country Status (1)

Country Link
CN (1) CN108536525B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109586952A (zh) * 2018-11-07 2019-04-05 广州虎牙信息科技有限公司 服务器扩容方法、装置
CN110673955A (zh) * 2019-09-20 2020-01-10 北京字节跳动网络技术有限公司 优化内存的方法、装置、系统、终端和存储介质
CN112732540A (zh) * 2020-12-11 2021-04-30 地平线征程(杭州)人工智能科技有限公司 确定硬件使用率的方法和装置、存储介质、电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110202657A1 (en) * 2010-02-12 2011-08-18 Elitegroup Computer Systems Co., Ltd. Method for scheduling cloud-computing resource and system applying the same
CN102567080A (zh) * 2012-01-04 2012-07-11 北京航空航天大学 一种云计算环境中的面向负载均衡的虚拟机择位系统
CN103248659A (zh) * 2012-02-13 2013-08-14 北京华胜天成科技股份有限公司 一种云计算资源调度方法和系统
US20140245298A1 (en) * 2013-02-27 2014-08-28 Vmware, Inc. Adaptive Task Scheduling of Hadoop in a Virtualized Environment
CN105808415A (zh) * 2016-03-09 2016-07-27 广东三盟信息科技有限公司 一种基于云计算环境的业务运行状态评估方法及其装置
CN106020936A (zh) * 2016-06-07 2016-10-12 深圳证券通信有限公司 一种金融云平台基于运行负载的虚拟机调度方法及装置
CN106095531A (zh) * 2016-06-08 2016-11-09 北京航空航天大学 云平台中一种基于等级和物理机负载的虚拟机调度方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110202657A1 (en) * 2010-02-12 2011-08-18 Elitegroup Computer Systems Co., Ltd. Method for scheduling cloud-computing resource and system applying the same
CN102567080A (zh) * 2012-01-04 2012-07-11 北京航空航天大学 一种云计算环境中的面向负载均衡的虚拟机择位系统
CN103248659A (zh) * 2012-02-13 2013-08-14 北京华胜天成科技股份有限公司 一种云计算资源调度方法和系统
US20140245298A1 (en) * 2013-02-27 2014-08-28 Vmware, Inc. Adaptive Task Scheduling of Hadoop in a Virtualized Environment
CN105808415A (zh) * 2016-03-09 2016-07-27 广东三盟信息科技有限公司 一种基于云计算环境的业务运行状态评估方法及其装置
CN106020936A (zh) * 2016-06-07 2016-10-12 深圳证券通信有限公司 一种金融云平台基于运行负载的虚拟机调度方法及装置
CN106095531A (zh) * 2016-06-08 2016-11-09 北京航空航天大学 云平台中一种基于等级和物理机负载的虚拟机调度方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109586952A (zh) * 2018-11-07 2019-04-05 广州虎牙信息科技有限公司 服务器扩容方法、装置
CN109586952B (zh) * 2018-11-07 2022-04-12 广州虎牙信息科技有限公司 服务器扩容方法、装置
CN110673955A (zh) * 2019-09-20 2020-01-10 北京字节跳动网络技术有限公司 优化内存的方法、装置、系统、终端和存储介质
CN110673955B (zh) * 2019-09-20 2022-07-12 北京字节跳动网络技术有限公司 优化内存的方法、装置、系统、终端和存储介质
CN112732540A (zh) * 2020-12-11 2021-04-30 地平线征程(杭州)人工智能科技有限公司 确定硬件使用率的方法和装置、存储介质、电子设备
CN112732540B (zh) * 2020-12-11 2023-02-21 地平线征程(杭州)人工智能科技有限公司 确定硬件使用率的方法和装置、存储介质、电子设备

Also Published As

Publication number Publication date
CN108536525B (zh) 2021-01-29

Similar Documents

Publication Publication Date Title
CN103458052B (zh) 一种基于IaaS云平台的资源调度方法和装置
CN110795203B (zh) 资源调度方法、装置、系统和计算设备
CN106155780A (zh) 一种基于时间的节点选举方法及装置
CN108536525A (zh) 一种宿主机调度方法及装置
CN108234581A (zh) 一种资源的调度方法和服务器
CN103763343A (zh) 一种业务访问处理方法及装置
CN102223419A (zh) 面向网络化操作系统的虚拟资源动态反馈均衡分配机制
CN110264039A (zh) 一种工作报表的生成方法及设备
CN105338154B (zh) 一种联系人排序方法、装置及终端
CN107995006A (zh) 一种云环境下基于消息触发的实时计费系统
CN107948004A (zh) 一种视频cdn调取优化方法及装置
CN111045808A (zh) 一种分布式网络任务调度方法及装置
CN112395075A (zh) 资源的处理方法、装置以及资源调度系统
CN108510093A (zh) 社区服务预约系统
CN111985851A (zh) 银行网点资源调度方法及装置
CN114064204A (zh) 一种微服务环境下基于业务预测动态扩容的方法
CN109450672B (zh) 一种识别带宽需求突发的方法和装置
CN108573313A (zh) 用于居家养老的集约式服务调配方法
CN106325997B (zh) 一种虚拟资源分配方法及装置
CN107659676A (zh) 基于动态ip资源池的智能调度技术
CN110347477A (zh) 一种云环境下服务自适应部署方法和装置
CN109359828A (zh) 调度费确定方法、装置及电子设备
CN110807578A (zh) 服务订单分配方法及装置
CN108681578A (zh) 一种业务数据存储方法、装置、服务器及存储介质
CN115309520A (zh) 任务迁移方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant