本技术涉及it支撑和云计算,具体涉及一种资源调度方法、装置、设备、程序产品和存储介质。
背景技术:
1、在实际工程环境中,随着paas(platform-as-a-service,平台即服务)平台的应用和普及,开源应用容器引擎docker已经成为了最重要的应用部署和运行环境。kubernetes是用于自动部署、扩展和管理容器化(containerized)应用程序的开源系统。它支持一系列容器工具,包括docker等。kubernetes已广泛应用在各企业paas平台中。
2、在典型的kubernetes架构中,业务容器(pod)安排在节点上,包含一组容器和卷。同一个pod里的容器共享同一个网络命名空间,可以使用本地服务器(localhost)互相通信。实际的应用是通过pod中的container进行部署的。service是定义一系列pod以及访问这些pod的策略的一层抽象。service通过label找到pod组,而具体在资源调度过程中,决定将pod放到哪个node上运行是由调度器(scheduler)来决定的。scheduler在调度时会对集群的结构进行分析,当前各个节点的负载,以及应用对高可用、性能等方面的需求。
3、目前,资源调度的模型比较简单、原生,只能使用当前性能和容量的固定比例,生产环境复杂性决定了瞬时的数值具有一定的局限性。
4、并且,在电信行业,资源调度场景具有特殊性,体现在:业务容器(pod)对资源的需求差别很大,利用率并不是一直平稳,通常具有以月为单位的周期性,一些容器还兼具月初具有业务高发性等特点。有些容器白天忙晚上闲(如计费进程),而另一些白天闲晚上忙(如结算、报表)。因此如果利用现有的使用当前性能和容量进行资源调度,会造成资源调度方案的主机资源利用率较低,集群不能承载更多应用,影响业务展开。
技术实现思路
1、本技术实施例提供一种资源调度方法、装置、设备、程序产品和存储介质,用以解决瞬时的数值具有一定的局限性、主机资源利用率较低、集群不能承载更多应用的技术问题。
2、第一方面,本技术实施例提供一种资源调度方法,包括:获取需要进行资源调度的业务容器的分类类别;确定与分类类别对应的资源预测模型,并根据资源预测模型得到预测性能数据;根据预测性能数据在集群主机中确定候选主机;其中候选主机为剩余资源能够满足预测性能数据的集群主机;将预测性能数据和候选主机输入至主机评分预测模型,获取主机评分预测模型输出的每个候选主机的评分结果;基于所有候选主机的评分结果确定最优主机,并根据最优主机进行业务实例的调度。
3、在一个实施例中,确定与分类类别对应的资源预测模型,包括:获取初始资源预测模型;获取第一训练数据样本和第二训练数据样本;其中每一训练数据样本包括业务容器标签、当前cpu使用率、内存使用量和相关配置信息;第一训练数据样本的业务容器标签和第二训练数据样本的业务容器标签不相同;利用第一训练数据样本对初始资源预测模型进行训练,得到第一资源预测模型;利用第二训练数据样本对初始资源预测模型进行训练,得到第二资源预测模型;将第一资源预测模型的业务容器标签和第二资源预测模型的业务容器标签分别与分类类别做对比;当分类类别符合业务容器标签时,确定符合业务容器标签对应的资源预测模型为分类类别对应的资源预测模型。
4、在一个实施例中,初始资源预测模型为差分自回归移动平均模型;差分自回归移动平均模型表达为arima(p,d,q);其中p为自回归项数;q为滑动平均项数,d为使差分自回归移动平均模型成为平稳序列所做的差分次数;利用第一训练数据样本对初始资源预测模型进行训练,得到第一资源预测模型,包括:对第一训练数据样本进行预处理;对进行预处理之后的第一训练数据样本按照时序关系进行差分处理,以确定初始资源预测模型中的参数d;通过adf对数据进行平稳性检验;若单位根检验值小于第一预设数值则通过平稳性检验;若单位根检验值大于或等于第一预设数值则重复进行差分处理,直至通过平稳性检验;通过aic准则或bic准则确定初始资源预测模型中的参数p和参数q;基于参数d、参数p和参数q确定第一资源预测模型。
5、在一个实施例中,根据预测性能数据在集群主机中确定候选主机,包括:获取主机筛选模型,其中主机筛选模型是逻辑回归模型,且预先输入有业务容器的分类类别和集群主机的剩余资源量;将预测性能数据输入至主机筛选模型,得到主机筛选模型输出筛选结果;其中,筛选结果为集群主机作为候选主机的选择概率;根据选择概率在集群主机中确定候选主机。
6、在一个实施例中,主机评分预测模型是利用优先级函数从资源利用情况的维度进行候选主机评分,优先级函数包括最低请求优先级函数和均衡资源分配函数;最低请求优先级函数用于优先调度至请求资源少的节点;均衡资源分配函数用于优先平衡各节点的资源使用。
7、在一个实施例中,获取需要进行资源调度的业务容器的分类类别,包括:为需要进行资源调度的业务容器进行分类,得到分类类别;其中分类类别用于标识业务容器的资源需求周期性。
8、第二方面,本技术实施例提供一种资源调度装置,包括:分类类别模块,用于获取需要进行资源调度的业务容器的分类类别;资源预测模型模块,用于确定与分类类别对应的资源预测模型,并根据资源预测模型得到预测性能数据;候选主机模块,用于根据预测性能数据在集群主机中确定候选主机;其中候选主机为剩余资源能够满足预测性能数据的集群主机;主机评分预测模型模块,用于将预测性能数据和候选主机输入至主机评分预测模型,获取主机评分预测模型输出的每个候选主机的评分结果;最优主机模块,用于基于所有候选主机的评分结果确定最优主机,并根据最优主机进行业务实例的调度。
9、第三方面,本技术实施例提供一种电子设备,包括处理器和存储有计算机程序的存储器,处理器执行程序时实现第一方面的资源调度方法的步骤。
10、第四方面,本技术实施例提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现第一方面的资源调度方法的步骤。
11、第五方面,本技术实施例一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现第一方面的资源调度方法。
12、本技术实施例提供的资源调度方法、装置、设备、程序产品和存储介质,根据需要进行资源调度的业务容器的分类类别选择与之相对应的资源预测模型进行预测得到预测性能数据;根据预测性能数据将能够满足该性能调度的主机作为候选主机,将预测性能数据输入主机评分预测模型中,利用预测性能数据对候选主机进行评分以得到每个主机的评分数据,根据评分数据选择最优的主机进行业务实例的调度。本技术实施例基于机器学习预测技术,提出了新的资源调度方案,对业务容器进行标签分类,能够结合电信业务特点,更全面描述资源需求,生成更符合业务特点的资源预测模型;通过预测性能数据与个性化的业务容器资源需求相互匹配,达到资源“削峰填谷”,提高主机利用率,对候选主机进行筛选提升资源调度的准确率。