本发明属于通信技术领域,具体涉及一种云环境下资源调度方法及系统。
背景技术:
云计算(CloudComputing),是一种基于互联网的计算方式,将计算任务分布在海量计算机硬件组成的资源池中,用户以按需订制的方式享受云计算提供的服务,例如计算能力、存储空间和信息服务等。云计算的核心思想,是将大量用网络连接的计算资源统一管理和调度,构成一个统一资源池向用户提供按需服务。云计算(CloudComputing)是网格计算(GridComputing)、分布式计算(DistributedComputing)、并行计算(ParallelComputing)、效用计算(UtilityComputing)、网络存储(NetworkStorageTechnologies)、虚拟化(Virtualization)、负载均衡(LoadBalance)等传统计算机和网络技术发展融合的产物。
由于云计算平台中的计算机数量非常庞大、组成复杂、资源的配置差异较大,这样大规模、异构、非集中的资源调度很难实现资源的负载均衡,负载的不均衡容易造成系统的效率和吞吐率的降低,以及系统日常运行的不稳定,严重影响云计算的服务质量。为实现负载均衡,现有技术中采用的资源调度方法为:将部署虚拟机的任务按照依次分配的方式部署至多个服务器节点,以使资源不被闲置来提高负载均衡度,但是由于服务器节点差异较大和需要创建的虚拟机差异较大,因此,仍然存在负载均衡度低的问题。
因此,目前亟需一种提高负载均衡度的云环境下资源调度方法及系统。
技术实现要素:
本发明旨在至少解决现有技术中存在的技术问题之一,提出了一种云环境下资源调度方法及系统,以解决现有的云环境系统的负载均衡度低的问题。
为解决上述问题之一,作为本发明的一个方面,提供了一种云环
境下资源调度方法,其中,包括以下步骤:
周期性获得每个服务器节点的负载率,作为第一负载率;
周期性获得整个云环境系统的负载率,作为第二负载率;
按照以下规则设置负载率阈值:所述负载率阈值与所述第二负载率成正相关关系;
在所述第一负载率小于所述负载率阈值的所有所述服务器节点中根据接收到的任务调度相应的服务器节点来执行该任务。
优选地,所述云环境下资源调度方法还包括以下步骤:
延迟调度所述第一负载率大于所述负载率阈值的所述服务器节点预设时间,之后判断该服务器节点的第一负载率是否仍然大于所述负载率阈值,若是,则发出针对该服务器节点的负载迁移任务;
所述任务包括所述负载迁移任务。
优选地,所述周期性获得每个服务器节点的负载率,包括:
周期性检测每个服务器节点的CPU资源、内存资源和存储资源的利用率;
根据以下公式计算所述服务器节点的所述负载率:
其中,Lpmj为服务器节点j的负载率;Wecpu为预设的服务器节点j的CPU资源的权值,Wemen为预设的服务器节点j的内存资源的权值,Wedisk为预设的服务器节点j的存储资源的权值;∑We为服务器节点j的CPU资源、内存资源和存储资源的预设权值之和;Lpm_cpuj为服务器节点j的CPU资源的利用率;Lpm_menj为服务器节点j的内存资源的利用率;Lpm_diskj为服务器节点j的存储资源的利用率。
优选地,所述云环境下资源调度方法,还包括以下步骤:
周期性计算所述云环境系统负载的不均衡度;
预设不均衡度阈值;
在所述云环境系统的不均衡度大于所述不均衡度阈值时,发出针对所述第一负载率高的所述服务器节点的负载迁移任务;
所述任务包括所述负载迁移任务。
优选地,采用如下公式周期性计算所述云环境系统负载的不均衡度:
其中,cpuavg为所述云环境系统中所有的n个服务器的CPU资源利用率的平均值;menavg为所述云环境系统中所有的n个服务器的内存资源利用率的平均值;diskavg为所述云环境系统中所有的n个服务器的存储资源利用率的平均值;PMi_cpu为服务器节点i的CPU资源的利用率;PMi_men为服务器节点i的内存的利用率;PMi_disk为服务器节点i的存储资源的利用率。
作为本发明的另一个方面,提供一种云环境下资源调度系统,其中,包括:
负载率获取模块,用于周期性获得每个服务器节点的负载率,作为第一负载率,以及周期性获得整个云环境系统的负载率,作为第二负载率;
负载率阈值设置模块,用于按照以下规则设置负载率阈值:所述负载率阈值与所述第二负载率成正相关关系;
执行模块,用于在所述第一负载率小于所述负载率阈值的所有所述服务器节点中根据接收到的任务调度相应的服务器节点来执行该任务。
优选地所述执行模块,还用于延迟调度所述第一负载率大于所述负载率阈值的所述服务器节点预设时间,之后判断该服务器节点的第一负载率是否仍然大于所述负载率阈值,若是,则发出针对该服务器节点的负载迁移任务;
所述任务包括所述负载迁移任务。
优选地所述负载率获取模块,用于按照以下公式计算所述服务器节点的所述负载率:
其中,Lpmj为服务器节点j的负载率;Wecpu为预设的服务器节点j的CPU资源的权值,Wemen为预设的服务器节点j的内存资源的权值,Wedisk为预设的服务器节点j的存储资源的权值;∑We为服务器节点j的CPU资源、内存资源和存储资源的预设权值之和;Lpm_cpuj为服务器节点j的CPU资源的利用率;Lpm_menj为服务器节点j的内存资源的利用率;Lpm_diskj为服务器节点j的存储资源的利用率。
优选地,所述云环境下资源调度系统,还包括:
不均衡度计算模块,用于周期性计算所述云环境系统负载的不均衡度;
不均衡度阈值预设模块,用于预设不均衡度阈值;
所述执行模块,还用于在所述云环境系统的不均衡度大于所述不均衡度阈值时,发出针对所述第一负载率高的所述服务器节点的负载迁移任务;
所述任务包括所述负载迁移任务。
优选地,所述不均衡度计算模块,用于采用如下公式周期性计算所述云环境系统负载的不均衡度:
其中,cpuavg为所述云环境系统中所有的n个服务器的CPU资源利用率的平均值;menavg为所述云环境系统中所有的n个服务器的内存资源利用率的平均值;diskavg为所述云环境系统中所有的n个服务器的存储资源利用率的平均值;PMi_cpu为服务器节点i的CPU资源的利用率;PMi_men为服务器节点i的内存的利用率;PMi_disk为服务器节点i的存储资源的利用率。
本发明具有以下有益效果:
本发明提供的云环境下资源调度方法及系统,可在整个云环境系统的负载率较低时对低于较低的负载率阈值的服务器节点分配任务,而在整个云环境系统的负载率较高时对低于较高的负载率阈值的服务器节点分配任务,这样,可尽早地进行平衡负载,使得云环境系统在一开始就能以负载相对均衡地方式工作,从而可以提高云环境系统的负载均衡度。
附图说明
图1为本发明一实施例提供的云环境下资源调度方法的流程图,;
图2为本发明一实施例提供的云环境下资源调度系统的原理框图。
具体实施方式
为使本领域的技术人员更好地理解本发明的技术方案,下面结合附图来对本发明提供的云环境下资源调度方法及系统进行详细描述。
实施例1
图1为本发明一实施例提供的云环境下资源调度方法的流程图,请参阅图1,本发明实施例提供的云环境下资源调度方法包括以下步骤:
S1,周期性获得每个服务器节点的负载率,作为第一负载率;以及周期性获得整个云环境系统的负载率,作为第二负载率。
具体地,获取第一负载率和第二负载率的频率应尽可能地接近任务请求的频率,以及时地获取当前服务器节点和整个云环境系统的负载率。
S2,按照以下规则设置负载率阈值:所述负载率阈值与所述第二负载率成正相关关系,也即第二负载率越高设置负载率阈值的取值也就越高,第二负载率越低设置负载率阈值的取值越低,举例说明,若当前整个云环境系统的负载率为30%,则设置负载率阈值为20%;而若当前整个云环境系统的负载率为60%,则设置负载率阈值为50%。
S3,在第一负载率小于负载率阈值的所有服务器节点中根据接收到的任务调度相应的服务器节点来执行该任务。
本发明实施例1提供的云环境下资源调度方法,借助上述步骤S1~S3,可在整个云环境系统的负载率较低时对低于较低的负载率阈值的服务器节点分配任务,而在整个云环境系统的负载率较高时对低于较高的负载率阈值的服务器节点分配任务,这样,可尽早地进行平衡负载,使得云环境系统在一开始就能以负载相对均衡地方式工作,从而可以提高云环境系统的负载均衡度。
在本实施例中,该云环境下资源调度方法还包括:
在第二负载率达到预设值(例如,80%)时,发出增加服务器节点的请求。
在本实施例的步骤S3中,假设任务所需的服务器节点的CPU资源、内存资源和存储资源分别为:PMcpu、PMmen和PMdisk;而第一负载率小于负载率阈值的服务器节点有m个,m小于整个云环境系统的服务器节点的总数,按照如下公式依次计算m个服务器分别与任务的不匹配度P:
其中,α、β和γ分别CPU资源、内存资源和存储资源的预设权值,PMi-cpu、PMi-men和PMi-disk分别为服务器i剩余的CPU资源、内存资源和存储资源。
选择与任务的不匹配度P较小或者最小的服务器节点作为任务的目标节点,也就是说,在该目标节点上执行该任务。
实施例2
本实施例与上述实施例1相类似,二者不同之处仅在于:本实施例提供的云环境下资源调度方法还包括以下步骤:
延迟调度第一负载率大于负载率阈值的服务器节点预设时间,之后判断该服务器节点的第一负载率是否仍然大于负载率阈值,若是,则发出针对该服务器节点的负载迁移任务,以均衡负载。
并且,步骤S3中的任务包括该负载迁移任务。在这种情况下,步骤S3为:在第一负载率小于负载率阈值的所有服务器节点中根据接收到的负载迁移任务调度相应的服务器节点来执行该负载迁移任务。
本实施例采用上述延迟调度机制,可以避免云环境系统出现无效迁移开销和过度迁移开销,也就是可避免调度开销对系统性能的影响。
实施例3
本实施例与上述实施例1相类似,二者不同之处仅在于:本实施例提供的云环境下资源调度方法的步骤S1中的周期性获得每个服务器节点的负载率,包括以下步骤:
周期性检测每个服务器节点的CPU资源、内存资源和存储资源的利用率。
根据以下公式计算所述服务器节点的所述负载率:
其中,Lpmj为服务器节点j的负载率;Wecpu为预设的服务器节点j的CPU资源的权值,Wemen为预设的服务器节点j的内存资源的权值,Wedisk为预设的服务器节点j的存储资源的权值;∑We为服务器节点j的CPU资源、内存资源和存储资源的预设权值之和;Lpm_cpuj为服务器节点j的CPU资源的利用率;Lpm_menj为服务器节点j的内存资源的利用率;Lpm_diskj为服务器节点j的存储资源的利用率。
可以理解,采用上述加权平均公式可以人为设置服务器节点的CPU资源、内存资源和存储资源的权值,以更合理反应服务器节点的负载率。
实施例4
本实施例与上述实施例1相类似,二者不同之处仅在于:本实施例提供的云环境下资源调度方法,还包括以下步骤:
S10,周期性计算云环境系统负载的不均衡度。
S11,预设不均衡度阈值。
S12,在云环境系统的不均衡度大于不均衡度阈值时,发出针对第一负载率高的服务器节点的负载迁移任务。
同样地,步骤S3中的任务包括该负载迁移任务。
在该实施例中,可采用但不局限于如下公式周期性计算云环境系统负载的不均衡度:
其中,cpuavg为所述云环境系统中所有的n个服务器的CPU资源利用率的平均值;menavg为所述云环境系统中所有的n个服务器的内存资源利用率的平均值;diskavg为所述云环境系统中所有的n个服务器的存储资源利用率的平均值;PMi_cpu为服务器节点i的CPU资源的利用率;PMi_men为服务器节点i的内存的利用率;PMi_disk为服务器节点i的存储资源的利用率。
实施例5
本实施例与上述实施例2和4相类似,二者不同之处仅在于:本实施例提供的云环境下资源调度方法,还包括以下步骤:
在第一负载率大于负载率报警阈值和/或不均衡度大于不均衡度报警阈值时,发出报警任务,并将报警任务加入至报警任务队列。
将接收到的新任务调度申请时加入至新任务队列。
将发出的部分转移任务和/或全部转移任务加入至调优队列中。
将接收到的删除任务加入至删除队列中。
按照优先级别自高至低的顺序依次执行上述任务队列,所述优先级别为:报警任务队列>新任务队列>调优队列>删除队列。
在此说明的是,上述实施例2~5中的技术特征,均可在不矛盾的情况下任意结合至实施例1中形成新的实施例,在此不一一列举。
另外,在此需要说明的是,上述实施例1~5均是采用第一负载率进行工作的,当然,本发明并不局限于此,在实际应用中,还可以定义与第一负载率相关的信息素进行工作。具体地,信息素τj与第一负载率Lpmj的关系如下:
在此情况下,实施例1中的步骤S3可以为:在信息素不为0的所有服务器节点中根据接收到的任务调度相应的服务器节点来执行该任务;实施例2中延迟调度信息素为0的服务器节点预设时间;实施例4中,在云环境系统的不均衡度大于不均衡度阈值时,发出针对信息素低的服务器节点的负载迁移任务。
实施例6
图2为本发明一实施例提供的云环境下资源调度系统,请参阅图2,本实施例提供的云环境下资源调度系统,包括:
负载率获取模块10,用于周期性获得每个服务器节点的负载率,作为第一负载率,以及周期性获得整个云环境系统的负载率,作为第二负载率。
负载率阈值设置模块11,用于按照以下规则设置负载率阈值:负载率阈值与第二负载率成正相关关系。
执行模块12,用于在第一负载率小于负载率阈值的所有服务器节点中根据接收到的任务调度相应的服务器节点来执行该任务。
本发明实施例6提供的云环境下资源调度系统,借助负载率获取模块10、负载率阈值设置模块11和执行模块12,可在整个云环境系统的负载率较低时对低于较低的负载率阈值的服务器节点分配任务,而在整个云环境系统的负载率较高时对低于较高的负载率阈值的服务器节点分配任务,这样,可尽早地进行平衡负载,使得云环境系统在一开始就能以负载相对均衡地方式工作,从而可以提高云环境系统的负载均衡度。
实施例7
本实施例与上述实施例6相类似,二者不同之处仅在于:本实施例提供的云环境下资源调度系统中的执行模块,还用于延迟调度第一负载率大于负载率阈值的服务器节点预设时间,之后判断该服务器节点的第一负载率是否仍然大于负载率阈值,若是,则发出针对该服务器节点的负载迁移任务,该负载迁移任务属于上述实施例6中所述的任务。
实施例8
本实施例与上述实施例6相类似,二者不同之处仅在于:本实施例提供的云环境下资源调度系统中的负载率获取模块,用于按照以下公式计算所述服务器节点的所述负载率:
其中,Lpmj为服务器节点j的负载率;Wecpu为预设的服务器节点j的CPU资源的权值,Wemen为预设的服务器节点j的内存资源的权值,Wedisk为预设的服务器节点j的存储资源的权值;∑We为服务器节点j的CPU资源、内存资源和存储资源的预设权值之和;Lpm_cpuj为服务器节点j的CPU资源的利用率;Lpm_menj为服务器节点j的内存资源的利用率;Lpm_diskj为服务器节点j的存储资源的利用率。
实施例9
本实施例与上述实施例6相类似,二者不同之处仅在于:本实施例提供的云环境下资源调度系统,还包括:
不均衡度计算模块13,用于周期性计算云环境系统负载的不均衡度。
不均衡度阈值预设模块14,用于预设不均衡度阈值。
执行模块,还用于在云环境系统的不均衡度大于不均衡度阈值时,发出针对第一负载率高的服务器节点的负载迁移任务,该负载迁移任务属于上述实施例6中所述的任务。
在本实施例中,不均衡度计算模块13,用于采用但不限于如下公式周期性计算所述云环境系统负载的不均衡度:
其中,cpuavg为所述云环境系统中所有的n个服务器的CPU资源利用率的平均值;menavg为所述云环境系统中所有的n个服务器的内存资源利用率的平均值;diskavg为所述云环境系统中所有的n个服务器的存储资源利用率的平均值;PMi_cpu为服务器节点i的CPU资源的利用率;PMi_men为服务器节点i的内存的利用率;PMi_disk为服务器节点i的存储资源的利用率。
在此说明的是,上述实施例7~9中的技术特征,均可在不矛盾的情况下任意结合至实施例6中形成新的实施例,在此不一一列举。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。