CN117056018A - 资源调度方法、装置、设备、程序产品和存储介质 - Google Patents

资源调度方法、装置、设备、程序产品和存储介质 Download PDF

Info

Publication number
CN117056018A
CN117056018A CN202310994251.5A CN202310994251A CN117056018A CN 117056018 A CN117056018 A CN 117056018A CN 202310994251 A CN202310994251 A CN 202310994251A CN 117056018 A CN117056018 A CN 117056018A
Authority
CN
China
Prior art keywords
resource
host
prediction model
candidate
hosts
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.)
Pending
Application number
CN202310994251.5A
Other languages
English (en)
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.)
China Mobile Communications Group Co Ltd
China Mobile Group Beijing Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Group Beijing 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 China Mobile Communications Group Co Ltd, China Mobile Group Beijing Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202310994251.5A priority Critical patent/CN117056018A/zh
Publication of CN117056018A publication Critical patent/CN117056018A/zh
Pending legal-status Critical Current

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/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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/45595Network integration; Enabling network access in virtual machine instances
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请涉及IT支撑和云计算技术领域,提供资源调度方法、装置、设备、程序产品和存储介质,资源调度方法包括:获取需要进行资源调度的业务容器的分类类别;确定与分类类别对应的资源预测模型,并根据资源预测模型得到预测性能数据;根据预测性能数据在集群主机中确定候选主机;其中候选主机为剩余资源能够满足预测性能数据的集群主机;将预测性能数据和候选主机输入至主机评分预测模型,获取主机评分预测模型输出的每个候选主机的评分结果;基于所有候选主机的评分结果确定最优主机,并根据最优主机进行业务实例的调度。本申请实施例基于机器学习预测技术,提出了新的资源调度方案,能够提升主机资源利用率和资源调度的准确率。

Description

资源调度方法、装置、设备、程序产品和存储介质
技术领域
本申请涉及IT支撑和云计算技术领域,具体涉及一种资源调度方法、装置、设备、程序产品和存储介质。
背景技术
在实际工程环境中,随着PaaS(Platform-as-a-Service,平台即服务)平台的应用和普及,开源应用容器引擎docker已经成为了最重要的应用部署和运行环境。kubernetes是用于自动部署、扩展和管理容器化(containerized)应用程序的开源系统。它支持一系列容器工具,包括Docker等。kubernetes已广泛应用在各企业PaaS平台中。
在典型的kubernetes架构中,业务容器(pod)安排在节点上,包含一组容器和卷。同一个pod里的容器共享同一个网络命名空间,可以使用本地服务器(localhost)互相通信。实际的应用是通过pod中的container进行部署的。service是定义一系列pod以及访问这些pod的策略的一层抽象。service通过label找到pod组,而具体在资源调度过程中,决定将pod放到哪个node上运行是由调度器(scheduler)来决定的。scheduler在调度时会对集群的结构进行分析,当前各个节点的负载,以及应用对高可用、性能等方面的需求。
目前,资源调度的模型比较简单、原生,只能使用当前性能和容量的固定比例,生产环境复杂性决定了瞬时的数值具有一定的局限性。
并且,在电信行业,资源调度场景具有特殊性,体现在:业务容器(pod)对资源的需求差别很大,利用率并不是一直平稳,通常具有以月为单位的周期性,一些容器还兼具月初具有业务高发性等特点。有些容器白天忙晚上闲(如计费进程),而另一些白天闲晚上忙(如结算、报表)。因此如果利用现有的使用当前性能和容量进行资源调度,会造成资源调度方案的主机资源利用率较低,集群不能承载更多应用,影响业务展开。
发明内容
本申请实施例提供一种资源调度方法、装置、设备、程序产品和存储介质,用以解决瞬时的数值具有一定的局限性、主机资源利用率较低、集群不能承载更多应用的技术问题。
第一方面,本申请实施例提供一种资源调度方法,包括:获取需要进行资源调度的业务容器的分类类别;确定与分类类别对应的资源预测模型,并根据资源预测模型得到预测性能数据;根据预测性能数据在集群主机中确定候选主机;其中候选主机为剩余资源能够满足预测性能数据的集群主机;将预测性能数据和候选主机输入至主机评分预测模型,获取主机评分预测模型输出的每个候选主机的评分结果;基于所有候选主机的评分结果确定最优主机,并根据最优主机进行业务实例的调度。
在一个实施例中,确定与分类类别对应的资源预测模型,包括:获取初始资源预测模型;获取第一训练数据样本和第二训练数据样本;其中每一训练数据样本包括业务容器标签、当前CPU使用率、内存使用量和相关配置信息;第一训练数据样本的业务容器标签和第二训练数据样本的业务容器标签不相同;利用第一训练数据样本对初始资源预测模型进行训练,得到第一资源预测模型;利用第二训练数据样本对初始资源预测模型进行训练,得到第二资源预测模型;将第一资源预测模型的业务容器标签和第二资源预测模型的业务容器标签分别与分类类别做对比;当分类类别符合业务容器标签时,确定符合业务容器标签对应的资源预测模型为分类类别对应的资源预测模型。
在一个实施例中,初始资源预测模型为差分自回归移动平均模型;差分自回归移动平均模型表达为ARIMA(p,d,q);其中p为自回归项数;q为滑动平均项数,d为使差分自回归移动平均模型成为平稳序列所做的差分次数;利用第一训练数据样本对初始资源预测模型进行训练,得到第一资源预测模型,包括:对第一训练数据样本进行预处理;对进行预处理之后的第一训练数据样本按照时序关系进行差分处理,以确定初始资源预测模型中的参数d;通过ADF对数据进行平稳性检验;若单位根检验值小于第一预设数值则通过平稳性检验;若单位根检验值大于或等于第一预设数值则重复进行差分处理,直至通过平稳性检验;通过AIC准则或BIC准则确定初始资源预测模型中的参数p和参数q;基于参数d、参数p和参数q确定第一资源预测模型。
在一个实施例中,根据预测性能数据在集群主机中确定候选主机,包括:获取主机筛选模型,其中主机筛选模型是逻辑回归模型,且预先输入有业务容器的分类类别和集群主机的剩余资源量;将预测性能数据输入至主机筛选模型,得到主机筛选模型输出筛选结果;其中,筛选结果为集群主机作为候选主机的选择概率;根据选择概率在集群主机中确定候选主机。
在一个实施例中,主机评分预测模型是利用优先级函数从资源利用情况的维度进行候选主机评分,优先级函数包括最低请求优先级函数和均衡资源分配函数;最低请求优先级函数用于优先调度至请求资源少的节点;均衡资源分配函数用于优先平衡各节点的资源使用。
在一个实施例中,获取需要进行资源调度的业务容器的分类类别,包括:为需要进行资源调度的业务容器进行分类,得到分类类别;其中分类类别用于标识业务容器的资源需求周期性。
第二方面,本申请实施例提供一种资源调度装置,包括:分类类别模块,用于获取需要进行资源调度的业务容器的分类类别;资源预测模型模块,用于确定与分类类别对应的资源预测模型,并根据资源预测模型得到预测性能数据;候选主机模块,用于根据预测性能数据在集群主机中确定候选主机;其中候选主机为剩余资源能够满足预测性能数据的集群主机;主机评分预测模型模块,用于将预测性能数据和候选主机输入至主机评分预测模型,获取主机评分预测模型输出的每个候选主机的评分结果;最优主机模块,用于基于所有候选主机的评分结果确定最优主机,并根据最优主机进行业务实例的调度。
第三方面,本申请实施例提供一种电子设备,包括处理器和存储有计算机程序的存储器,处理器执行程序时实现第一方面的资源调度方法的步骤。
第四方面,本申请实施例提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现第一方面的资源调度方法的步骤。
第五方面,本申请实施例一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现第一方面的资源调度方法。
本申请实施例提供的资源调度方法、装置、设备、程序产品和存储介质,根据需要进行资源调度的业务容器的分类类别选择与之相对应的资源预测模型进行预测得到预测性能数据;根据预测性能数据将能够满足该性能调度的主机作为候选主机,将预测性能数据输入主机评分预测模型中,利用预测性能数据对候选主机进行评分以得到每个主机的评分数据,根据评分数据选择最优的主机进行业务实例的调度。本申请实施例基于机器学习预测技术,提出了新的资源调度方案,对业务容器进行标签分类,能够结合电信业务特点,更全面描述资源需求,生成更符合业务特点的资源预测模型;通过预测性能数据与个性化的业务容器资源需求相互匹配,达到资源“削峰填谷”,提高主机利用率,对候选主机进行筛选提升资源调度的准确率。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的资源调度方法的流程示意图之一;
图2是本申请实施例提供的资源预测模型的整体建模流程示意图;
图3是本申请实施例提供的各模型的交互示意图;
图4是本申请实施例提供的资源调度装置的流程示意图之二;
图5是本申请实施例提供的资源调度装置的结构示意图;
图6是本申请实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种资源调度方法,可应用于kubernetes。请参阅图1,图1是本申请实施例提供的资源调度方法的流程示意图之一,在本实施例中,资源调度方法可以包括步骤S110~S150,各步骤具体如下:
S110:获取需要进行资源调度的业务容器的分类类别。
可选地,获取需要进行资源调度的业务容器的分类类别,包括:为需要进行资源调度的业务容器进行分类,得到分类类别;其中分类类别用于标识业务容器的资源需求周期性。
分类类别是用来标识业务容器的资源需求周期性,例如分类类别可以按照整月的资源需求分类也可以按照每日的资源需求分类,这里的时间段可以按照需求设置。
例如按照整月的资源需求分类:月初忙其余时间平稳、整月平稳运行等;按照每日的资源需求分类:夜里忙其余时间平稳、白天忙等。
S120:确定与分类类别对应的资源预测模型,并根据资源预测模型得到预测性能数据。
在本年实施例中,可以预先针对每种分类类别训练一个资源预测模型,不同分类类别的资源预测模型的权重参数有区别,这样设置是为了提高不同资源需求下模型的预测准确度。
S130:根据预测性能数据在集群主机中确定候选主机。
其中候选主机为剩余资源能够满足预测性能数据的集群主机。
S140:将预测性能数据和候选主机输入至主机评分预测模型,获取主机评分预测模型输出的每个候选主机的评分结果。
S150:基于所有候选主机的评分结果确定最优主机,并根据最优主机进行业务实例的调度。
在kubernetes通过一组规则,为每一个未调度的Pod选择一个主机,kubernetes的调度模型主要包括两个方面:过滤主机和主机打分。过滤主机的目的是过滤掉不符合Pod要求的主机,经过过滤后,再对符合需求的主机列表进行打分,最终选择一个分值最高的主机部署Pod。
kubernetes用一组优先级函数处理每一个待选的主机(在kubernetes/plugin/pkg/scheduler/algorithm/priorities中实现)。每一个优先级函数会返回一个0-10的分数,分数越高表示主机越“好”,同时每一个函数也会对应一个表示权重的值。
最终主机的得分用以下公式计算得出:
finalScoreNode=(weight1*priorityFunc1)+(weight2*priorityFunc2)+…+(weightn*priorityFuncn);
其中,finalScoreNode是评分结果;priorityFunc1、priorityFunc2、priorityFuncn是各项评分分数;weight1、weight2、weightn是对应各项评分分数的权重系数。
最终,POD的实例将被调度到得分最高的集群主机上。
本申请实施例提供一种资源调度方法,基于机器学习预测技术,提出了新的资源调度方案,包括:获取需要进行资源调度的业务容器的分类类别;确定与分类类别对应的资源预测模型,并根据资源预测模型得到预测性能数据;根据预测性能数据在集群主机中确定候选主机;其中候选主机为剩余资源能够满足预测性能数据的集群主机;将预测性能数据和候选主机输入至主机评分预测模型,获取主机评分预测模型输出的每个候选主机的评分结果;基于所有候选主机的评分结果确定最优主机,并根据最优主机进行业务实例的调度。本申请实施例对业务容器进行标签分类,能够结合电信业务特点,更全面描述资源需求,生成更符合业务特点的资源预测模型;通过预测性能数据与个性化的业务容器资源需求相互匹配,达到资源“削峰填谷”,提高主机利用率,对候选主机进行筛选提升资源调度的准确率。
在一个实施例中,确定与分类类别对应的资源预测模型,包括:获取初始资源预测模型;获取第一训练数据样本和第二训练数据样本;其中每一训练数据样本包括业务容器标签、当前CPU使用率、内存使用量和相关配置信息;第一训练数据样本的业务容器标签和第二训练数据样本的业务容器标签不相同;利用第一训练数据样本对初始资源预测模型进行训练,得到第一资源预测模型;利用第二训练数据样本对初始资源预测模型进行训练,得到第二资源预测模型;将第一资源预测模型的业务容器标签和第二资源预测模型的业务容器标签分别与分类类别做对比;当分类类别符合业务容器标签时,确定符合业务容器标签对应的资源预测模型为分类类别对应的资源预测模型。
在一个实施例中,初始资源预测模型为差分自回归移动平均模型;差分自回归移动平均模型表达为ARIMA(p,d,q);其中p为自回归项数;q为滑动平均项数,d为使差分自回归移动平均模型成为平稳序列所做的差分次数;利用第一训练数据样本对初始资源预测模型进行训练,得到第一资源预测模型,包括:对第一训练数据样本进行预处理;对进行预处理之后的第一训练数据样本按照时序关系进行差分处理,以确定初始资源预测模型中的参数d;通过ADF对数据进行平稳性检验;若单位根检验值小于第一预设数值则通过平稳性检验;若单位根检验值大于或等于第一预设数值则重复进行差分处理,直至通过平稳性检验;通过AIC准则或BIC准则确定初始资源预测模型中的参数p和参数q;基于参数d、参数p和参数q确定第一资源预测模型。
资源预测模型可以利用ARIMA(差分自回归移动平均模型)来构建,在训练过程中,每种类型的资源预测模型所使用的训练数据样本是该分类类别的资源数据。训练数据样本中包含:业务容器标签(就是上面的分类类别)、当前CPU使用率、内存使用量和相关的配置信息等,资源预测模型的输出是该业务容器标签下的预测性能数据。本方案中针对每种分类类别训练一个资源预测模型,例如上述的四种例子对应设定4种资源预测模型,分别记为ARIMA1、ARIMA2、ARIMA3和ARIMA4。
下面介绍资源预测模型的构建方式:
资源预测模型利用差分自回归移动平均模型ARIMA构建,用于学习时序特征。其中。ARIMA是机器学习中时间序列预测模型,适用于具有周期性(seasons)的业务场景,通过对这些时间序列的分析,从中发现和揭示现象发展变化的规律,并将这些知识和信息用于预测。时间序列是按照一定的时间间隔排列的一组数据,其时间间隔可以是任意的时间单位,如小时、日、周月等。通过对这些时间序列的分析,从中发现和揭示现象发展变化的规律,并将这些知识和信息用于预测。ARIMA模型是基于AR模型、MA模型、ARMA模型的综合。
ARIMA模型中:AR表示自回归项、I表示差分项和MA表示移动平均项:差分项规定了对序列执行差分操作的次数,对数据进行差分操作的目的是使之保持平稳。ADF可以用来确定序列是否是平稳的,并有助于识别d值。
其中,AR项是自回归项,由ARIMA中的参数p定义,p值是由偏自相关(PACF)图确定的。AR用于预测下一个值的过去值,适用于预测与自身前期相关的现象,数学模型表达式如下:
其中,yt是当前值,μ是常数项,p是阶数,ri是第i个自相关系数,∈t是误差,同时∈t要符合正态分布。该模型反映了在t时刻的目标值与前t-1~p个目标值之前存在着一个线性关系,即:
yt~r1yt-1+r2yt-2+..+rpyt-p
MA项是移动平均项,定义了预测未来值时过去预测误差的数目。ARIMA中的参数q代表MA项,自相关(ACF)图用于识别正确的q值。
移动平均模型关注的是自回归模型中的误差项的累加,数学模型表达式如下:
其中,θi表示第i个误差值系数,∈t-i表示t时刻前i时刻的误差值,该模型反映了在t时刻的目标值与前t-1~p个误差值之前存在着一个线性关系,即:
yt~θ1t-12t-2+..+θpt-p
根据前面的描述,结合AR项和MA项得到ARMA模型,是一种自回归移动平均模型,该模型描述的是自回归与移动平均的结合,具体数学模型如下:
在ARMA模型的基础上增加差分项I即可得到ARIMA模型,也就是资源预测模型,表示为ARIMA(p,d,q)。增加的差分项I意味进行差分。基本原理是将数据通过差分转化为平稳数据,再将因变量仅对它的滞后值以及随机误差项的现值和滞后值进行回归所建立的模型。
在ARIMA(p,d,q)中,AR是“自回归”,p为自回归项数;MA为“滑动平均”,q为滑动平均项数,d为使之成为平稳序列所做的差分次数(阶数);AR项是指用于预测下一个值的过去值。AR项由ARIMA中的参数p定义。p值是由PACF图确定的。MA项定义了预测未来值时过去预测误差的数目。ARIMA中的参数q代表MA项。ACF图用于识别正确的q值。差分顺序规定了对序列执行差分操作的次数,对数据进行差分操作的目的是使之保持平稳。ADF可以用来确定序列是否是平稳的,并有助于识别d值。
ADF检验(Augmented Dickey-Fuller test),也叫做单位根检验,ADF检验是判断席列是否存在单位根:如果序列平稳,就不存在单位根,否则,就会存在单位根。
请参阅图2,图2是本申请实施例提供的资源预测模型的整体建模流程示意图。
首先对输入的性能资源时序数据进行预处理,预处理的过程包括可能的缺失值处理等,然后对预处理之后的数据按照时序关系进行差分处理,通过差分处理过程即可确定模型中的参数d,再通过ADF对数据进行平稳性检验,如果单位根检验值<0.05即视为通过平稳性检查,否则需要进行二次差分,直至通过平稳性检查,接着通过AIC/BIC准则来确定p,q的值,至此模型中的核心参数p,d,q确认,资源预测模型构建完成。通过资源预测模型能够根据历史数据对未来数据进行预测。
在一个实施例中,根据预测性能数据在集群主机中确定候选主机,包括:获取主机筛选模型,其中主机筛选模型是逻辑回归模型,且预先输入有业务容器的分类类别和集群主机的剩余资源量;将预测性能数据输入至主机筛选模型,得到主机筛选模型输出筛选结果;其中,筛选结果为集群主机作为候选主机的选择概率;根据选择概率在集群主机中确定候选主机。
Kubernetes调度器的作用是将待调度的Pod安装特定的调度算法和调度策略绑定到集群中的某个合适的主机上,并将绑定信息传给API server写入etcd中。整个调度过程中涉及三个对象,分别是:待调度的Pod列表,可以的Node列表,以及调度算法和策略。
根据业务容器的分类类别选择与之相对应的资源预测模型,进行预测,得到预测性能数据。
Kubernetes调度器读取预测性能数据,根据预测性能数据在主机中进行筛选,选择能够满足该性能调度的主机作为候选主机。待调度的主机中可能已经运行部分业务容器,因此,有可能部分主机并不满足资源调度的条件,为了提高资源调度的效率,避免无效计算量,可以先根据预测性能数据进行需求对主机的剩余资源进行筛选,从而得到候选主机。
具体的,候选主机是利用主机筛选模型得到的,主机筛选模型是一种分类模型,输入是业务容器pod的分类类别和主机的剩余资源量,输出的数据是该主机作为候选主机的选择概率。因此利用主机筛选模型即可得到候选主机。
其中,主机筛选模型是一种逻辑回归模型。主机筛选模型的输入变量是业务容器pod的分类类别和主机的剩余资源量,对应着神经元里的树突,然后接收输入变量的是一个线性模型,这个线性模型对应着神经元的细胞体,神经元中的线性模型的输出表示为:
其中,wi表示不同的主机的剩余资源量和业务容器pod的分类类别对应的权重,b表示截距,φ(X)表示线性函数,xi表示输入变量的特征向量中第i个特征,N表示特征总数。
另外,线性函数也可以表示为:
hθ(x)=g(θ01x12x2+...+θNxN);
其中,θi就是要求解的函数参数,即上述不同的主机的剩余资源量和业务容器pod的分类类别,θ0表示截距即上述b,假设不同的主机的剩余资源量和业务容器pod的分类类别表示为矩阵X,表示线性方程系数矩阵θ,则对函数进行简化有:
其中,hθ(x)表示主机的预测分类结果为候选主机的预测分类概率值,即结果取1的概率。
在一个实施例中,主机评分预测模型是利用优先级函数从资源利用情况的维度进行候选主机评分,优先级函数包括最低请求优先级函数和均衡资源分配函数;最低请求优先级函数用于优先调度至请求资源少的节点;均衡资源分配函数用于优先平衡各节点的资源使用。
主机评分预测模型是利用优先级函数从资源利用情况的维度进行候选主机评分,使用到的优先级函数主要包括以下两种:分别是:
最低请求优先级函数(LeastRequestedPriority)优先调度到请求资源少的节点上,如果新的pod要分配给一个节点,这个节点的优先级就由节点空闲的那部分与总容量的比值(即(总容量-节点上pod的容量总和-新pod的容量)/总容量)来决定。CPU和memory权重相当,比值最大的节点的得分最高。需要注意的是,这个优先级函数起到了按照资源消耗来跨节点分配pods的作用。计算公式如下:
cpu((capacity–sum(requested))*10/capacity)+memory((capacity–sum(requested))*10/capacity)/2;
LeastRequestedPriority举例说明:例如CPU的可用资源为100,运行容器申请的资源为15,则cpu分值为8.5分,内存可用资源为100,运行容器申请资源为20,则内存分支为8分。则此评价规则在此节点的分数为(8.5+8)/2=8.25分。
另一种是均衡资源分配函数(BalancedResourceAllocation)优先平衡各节点的资源使用,尽量选择在部署Pod后各项资源更均衡的机器。*BalancedResourceAllocation*不能单独使用,而且必须和*LeastRequestedPriority*同时使用,它分别计算主机上的cpu和memory的比重,主机的分值由cpu比重和memory比重的“距离”决定。计算公式如下:
score=10–abs(cpuFraction-memoryFraction)*10;
BalancedResourceAllocation举例说明:该调度策略是出于平衡度的考虑,避免出现CPU,内存消耗不均匀的事情。例如某节点的CPU剩余资源还比较充裕,假如为100,申请10,则cpuFraction为0.1,而内存剩余资源不多,假如为20,申请10,则memoryFraction为0.5,这样由于CPU和内存使用不均衡,此节点的得分为10-abs(0.1-0.5)*10=6分。假如CPU和内存资源比较均衡,例如两者都为0.5,那么代入公式,则得分为10分。
通过上述流程得到的用于进行资源调度的候选主机,将业务实例pod部署在候选主机上。这种调度方式能够满足在电信行业资源调度场景的特殊性,通过“削峰填谷”提升主机资源利用率,集群承载更多应用。
请参阅图3-图4,图3是本申请实施例提供的各模型的交互示意图;图4是本申请实施例提供的资源调度装置的流程示意图之二。
本方案整体是基于预测与标签的打分,首先,利用kubernetes的接口,修改kubernetes默认的调度器主机打分模型(以实时数据为输入)的输入为外部数据输入。日常,在AIOps平台通过实时采集集群主机的性能数据(CPU,内存)结合历史数据,利用ARIMA模型,对性能数据进行预测,并记录数据。在部署Pod前,每一个应用Pod进行标签标识,标识其资源需求周期性的相关标签,比如月初忙,每月平稳运行,每日夜里忙或者白天忙等等。根据不同标签标识的pod设定不同的资源预测模型。部署时,读取预测数据记录,首先利用主机筛选模型选取对应的候选主机,然后再根据不同标签的不同公式计算各节点的性能数据预测(CPU,内存)预测利用率作为kubernetes调度的主机评分预测模型的输入得到Kubernetes调度器的打分值,kubernetes将容器实例调度到打分最高的集群主机上。
以上,本申请实施例的资源调度方法,首先为需要进行资源调度的业务容器(pod)进行分类;部署模块向Kubernetes调度器发起调度请求;选择不同类别对应的资源预测模型;根据业务容器的分类类别选择与之相对应的资源预测模型,进行预测,得到预测性能数据;Kubernetes调度器读取预测性能数据,根据预测性能数据在主机中进行筛选;选择能够满足该性能调度的主机作为候选主机;将预测性能数据输入主机评分预测模型中,利用预测性能数据对每一个候选主机进行评分;得到每个主机的评分结果,根据评分数据选择最优的主机进行业务实例的调度;通过上述流程得到的用于进行资源调度的候选主机,将业务实例pod部署在候选主机上。
本申请实施例提出了根据电信业务特点对pod进行标签处理的方案,实现了kuberntes原生schedule中计算方法的改造,引入基于预测的性能数据,并根据不同标签个性化计算性能数据,对主机先进行筛选后进行打分,具有以下有益效果:
1.调度器对主机打分输入由实时数据优化为预测数据,避免了瞬时数据的偏差,基于历史数据和预测数据,更全面,更能反应主机性能特征;
2.将pod进行标签分类,能够结合电信业务特点,更全面描述资源需求,生成更符合业务特点的资源预测模型;
3.通过预测数据与个性化的pod资源需求相互匹配,达到资源“削峰填谷”,提高主机利用率。
4.对候选主机进行筛选提升资源调度的准确率。
本申请实施例提供还一种资源调度装置,下面对本申请实施例提供的资源调度装置进行描述,下文描述的资源调度装置与上文描述的资源调度方法可相互对应参照。
请参阅图5,图5是本申请实施例提供的资源调度装置的结构示意图。资源调度装置包括:
分类类别模块510,用于获取需要进行资源调度的业务容器的分类类别。
资源预测模型模块520,用于确定与分类类别对应的资源预测模型,并根据资源预测模型得到预测性能数据。
候选主机模块530,用于根据预测性能数据在集群主机中确定候选主机;其中候选主机为剩余资源能够满足预测性能数据的集群主机。
主机评分预测模型模块540,用于将预测性能数据和候选主机输入至主机评分预测模型,获取主机评分预测模型输出的每个候选主机的评分结果。
最优主机模块550,用于基于所有候选主机的评分结果确定最优主机,并根据最优主机进行业务实例的调度。
在一个实施例中,资源预测模型模块520用于:获取初始资源预测模型;获取第一训练数据样本和第二训练数据样本;其中每一训练数据样本包括业务容器标签、当前CPU使用率、内存使用量和相关配置信息;第一训练数据样本的业务容器标签和第二训练数据样本的业务容器标签不相同;利用第一训练数据样本对初始资源预测模型进行训练,得到第一资源预测模型;利用第二训练数据样本对初始资源预测模型进行训练,得到第二资源预测模型;将第一资源预测模型的业务容器标签和第二资源预测模型的业务容器标签分别与分类类别做对比;当分类类别符合业务容器标签时,确定符合业务容器标签对应的资源预测模型为分类类别对应的资源预测模型。
在一个实施例中,初始资源预测模型为差分自回归移动平均模型;差分自回归移动平均模型表达为ARIMA(p,d,q);其中p为自回归项数;q为滑动平均项数,d为使差分自回归移动平均模型成为平稳序列所做的差分次数。
资源预测模型模块520用于:对第一训练数据样本进行预处理;对进行预处理之后的第一训练数据样本按照时序关系进行差分处理,以确定初始资源预测模型中的参数d;通过ADF对数据进行平稳性检验;若单位根检验值小于第一预设数值则通过平稳性检验;若单位根检验值大于或等于第一预设数值则重复进行差分处理,直至通过平稳性检验;通过AIC准则或BIC准则确定初始资源预测模型中的参数p和参数q;基于参数d、参数p和参数q确定第一资源预测模型。
在一个实施例中,候选主机模块530用于:获取主机筛选模型,其中主机筛选模型是逻辑回归模型,且预先输入有业务容器的分类类别和集群主机的剩余资源量;将预测性能数据输入至主机筛选模型,得到主机筛选模型输出筛选结果;其中,筛选结果为集群主机作为候选主机的选择概率;根据选择概率在集群主机中确定候选主机。
在一个实施例中,主机评分预测模型是利用优先级函数从资源利用情况的维度进行候选主机评分,优先级函数包括最低请求优先级函数和均衡资源分配函数;最低请求优先级函数用于优先调度至请求资源少的节点;均衡资源分配函数用于优先平衡各节点的资源使用。
在一个实施例中,分类类别模块510用于:为需要进行资源调度的业务容器进行分类,得到分类类别;其中分类类别用于标识业务容器的资源需求周期性。
另一方面,本申请实施例还提供一种电子设备,图6是本申请实施例提供的电子设备的实体结构示意图,如图6所示,该电子设备可以包括:电子设备可以包括存储器(memory)620、处理器(processor)610及存储在存储器620上并可在处理器610上运行的计算机程序。处理器610执行程序时实现上述各方法所提供的资源调度方法。
可选地,电子设备还可以包括通信总线630和通信接口(CommunicationsInterface)640,其中,处理器610,通信接口640,存储器620通过通信总线630完成相互间的通信。处理器610可以调用存储器620中的计算机程序,以执行资源调度方法,该方法包括:获取需要进行资源调度的业务容器的分类类别;确定与分类类别对应的资源预测模型,并根据资源预测模型得到预测性能数据;根据预测性能数据在集群主机中确定候选主机;其中候选主机为剩余资源能够满足预测性能数据的集群主机;将预测性能数据和候选主机输入至主机评分预测模型,获取主机评分预测模型输出的每个候选主机的评分结果;基于所有候选主机的评分结果确定最优主机,并根据最优主机进行业务实例的调度。
此外,上述的存储器620中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各实施例所提供的资源调度方法的步骤,其步骤和原理在上述方法已详细介绍,在此不再赘述。
另一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的资源调度方法,其步骤和原理在上述方法已详细介绍,在此不再赘述。
非暂态计算机可读存储介质可以是处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD))等。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种资源调度方法,其特征在于,包括:
获取需要进行资源调度的业务容器的分类类别;
确定与所述分类类别对应的资源预测模型,并根据所述资源预测模型得到预测性能数据;
根据所述预测性能数据在集群主机中确定候选主机;其中所述候选主机为剩余资源能够满足所述预测性能数据的集群主机;
将所述预测性能数据和所述候选主机输入至主机评分预测模型,获取所述主机评分预测模型输出的每个候选主机的评分结果;
基于所有候选主机的评分结果确定最优主机,并根据所述最优主机进行业务实例的调度。
2.根据权利要求1所述的资源调度方法,其特征在于,所述确定与所述分类类别对应的资源预测模型,包括:
获取初始资源预测模型;
获取第一训练数据样本和第二训练数据样本;其中每一训练数据样本包括业务容器标签、当前CPU使用率、内存使用量和相关配置信息;所述第一训练数据样本的业务容器标签和所述第二训练数据样本的业务容器标签不相同;
利用所述第一训练数据样本对所述初始资源预测模型进行训练,得到第一资源预测模型;
利用所述第二训练数据样本对所述初始资源预测模型进行训练,得到第二资源预测模型;
将所述第一资源预测模型的业务容器标签和所述第二资源预测模型的业务容器标签分别与所述分类类别做对比;
当所述分类类别符合所述业务容器标签时,确定符合业务容器标签对应的资源预测模型为所述分类类别对应的资源预测模型。
3.根据权利要求2所述的资源调度方法,其特征在于,所述初始资源预测模型为差分自回归移动平均模型;所述差分自回归移动平均模型表达为ARIMA(p,d,q);其中p为自回归项数;q为滑动平均项数,d为使差分自回归移动平均模型成为平稳序列所做的差分次数;
所述利用所述第一训练数据样本对所述初始资源预测模型进行训练,得到第一资源预测模型,包括:
对所述第一训练数据样本进行预处理;
对进行预处理之后的第一训练数据样本按照时序关系进行差分处理,以确定所述初始资源预测模型中的参数d;
通过ADF对数据进行平稳性检验;
若单位根检验值小于第一预设数值则通过平稳性检验;若所述单位根检验值大于或等于所述第一预设数值则重复进行差分处理,直至通过平稳性检验;
通过AIC准则或BIC准则确定所述初始资源预测模型中的参数p和参数q;
基于所述参数d、所述参数p和参数q确定所述第一资源预测模型。
4.根据权利要求1所述的资源调度方法,其特征在于,所述根据所述预测性能数据在集群主机中确定候选主机,包括:
获取主机筛选模型,其中所述主机筛选模型是逻辑回归模型,且预先输入有业务容器的分类类别和集群主机的剩余资源量;
将所述预测性能数据输入至主机筛选模型,得到所述主机筛选模型输出筛选结果;其中,所述筛选结果为集群主机作为所述候选主机的选择概率;
根据所述选择概率在所述集群主机中确定所述候选主机。
5.根据权利要求1所述的资源调度方法,其特征在于,所述主机评分预测模型是利用优先级函数从资源利用情况的维度进行候选主机评分,所述优先级函数包括最低请求优先级函数和均衡资源分配函数;所述最低请求优先级函数用于优先调度至请求资源少的节点;所述均衡资源分配函数用于优先平衡各节点的资源使用。
6.根据权利要求1所述的资源调度方法,其特征在于,所述获取需要进行资源调度的业务容器的分类类别,包括:
为需要进行资源调度的业务容器进行分类,得到所述分类类别;其中所述分类类别用于标识所述业务容器的资源需求周期性。
7.一种资源调度装置,其特征在于,包括:
分类类别模块,用于获取需要进行资源调度的业务容器的分类类别;
资源预测模型模块,用于确定与所述分类类别对应的资源预测模型,并根据所述资源预测模型得到预测性能数据;
候选主机模块,用于根据所述预测性能数据在集群主机中确定候选主机;其中所述候选主机为剩余资源能够满足所述预测性能数据的集群主机;
主机评分预测模型模块,用于将所述预测性能数据和所述候选主机输入至主机评分预测模型,获取所述主机评分预测模型输出的每个候选主机的评分结果;
最优主机模块,用于基于所有候选主机的评分结果确定最优主机,并根据所述最优主机进行业务实例的调度。
8.一种电子设备,包括处理器和存储有计算机程序的存储器,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述的资源调度方法的步骤。
9.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一项所述的资源调度方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的资源调度方法。
CN202310994251.5A 2023-08-08 2023-08-08 资源调度方法、装置、设备、程序产品和存储介质 Pending CN117056018A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310994251.5A CN117056018A (zh) 2023-08-08 2023-08-08 资源调度方法、装置、设备、程序产品和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310994251.5A CN117056018A (zh) 2023-08-08 2023-08-08 资源调度方法、装置、设备、程序产品和存储介质

Publications (1)

Publication Number Publication Date
CN117056018A true CN117056018A (zh) 2023-11-14

Family

ID=88660112

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310994251.5A Pending CN117056018A (zh) 2023-08-08 2023-08-08 资源调度方法、装置、设备、程序产品和存储介质

Country Status (1)

Country Link
CN (1) CN117056018A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117472586A (zh) * 2023-12-05 2024-01-30 支付宝(杭州)信息技术有限公司 时序模型的训练方法及装置、内存管理方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117472586A (zh) * 2023-12-05 2024-01-30 支付宝(杭州)信息技术有限公司 时序模型的训练方法及装置、内存管理方法及装置
CN117472586B (zh) * 2023-12-05 2024-03-12 支付宝(杭州)信息技术有限公司 时序模型的训练方法及装置、内存管理方法及装置

Similar Documents

Publication Publication Date Title
CN108829494B (zh) 基于负载预测的容器云平台智能资源优化方法
US8437029B2 (en) Method and apparatus for assigning candidate processing nodes in a stream-oriented computer system
CN111147604B (zh) 一种车联网边缘计算的负载均衡方法
CN113110914A (zh) 一种基于微服务架构的物联网平台构建方法
CN117056018A (zh) 资源调度方法、装置、设备、程序产品和存储介质
CN115543577B (zh) 基于协变量的Kubernetes资源调度优化方法、存储介质及设备
CN113946431B (zh) 一种资源调度方法、系统、介质及计算设备
CN115297112A (zh) 一种基于Kubernetes的动态资源配额及调度组件
CN113806018A (zh) 基于神经网络和分布式缓存的Kubernetes集群资源混合调度方法
CN114625500A (zh) 云环境下拓扑感知的微服务应用调度的方法及应用
CN112995341B (zh) 一种面向复杂信息系统的云资源动态分配方法
CN117667305A (zh) 基于业务场景的安全策略的部署方法、装置及电子设备
CN111124619B (zh) 一种面向二次调度的容器调度方法
CN114978913B (zh) 一种基于切链的服务功能链跨域部署方法及系统
CN115665157B (zh) 一种基于应用资源类型的均衡调度方法和系统
CN114048040B (zh) 基于内存与图像分类模型时延关系的任务调度方法
CN116541128A (zh) 一种负载调节方法、装置、计算设备、及存储介质
CN115994029A (zh) 容器资源调度方法及装置
CN115061811A (zh) 一种资源调度方法、装置、设备及存储介质
CN116257360B (zh) 一种基于历史使用数据规划容器组资源的方法和系统
CN115037625B (zh) 网络切片处理方法、装置、电子设备及可读存储介质
CN117971505B (zh) 部署容器应用的方法及装置
CN117195036A (zh) 一种电厂数据智能处理方法及系统
CN114465957B (zh) 一种数据写入方法及装置
CN115865693A (zh) 一种面向边缘计算的Kubernetes调度方法和系统

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