CN111209083B - 一种容器调度的方法、设备及存储介质 - Google Patents
一种容器调度的方法、设备及存储介质 Download PDFInfo
- Publication number
- CN111209083B CN111209083B CN202010016729.3A CN202010016729A CN111209083B CN 111209083 B CN111209083 B CN 111209083B CN 202010016729 A CN202010016729 A CN 202010016729A CN 111209083 B CN111209083 B CN 111209083B
- Authority
- CN
- China
- Prior art keywords
- data
- load data
- determining
- change trend
- function
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请提供一种容器调度的方法、设备及存储介质,该方法包括:获取各虚拟机节点的负载数据;采用经验模态分解法对所述负载数据进行分解处理,获得所述负载数据的整体变化趋势数据;根据所述整体变化趋势数据,确定样本熵,作为所述负载数据的特征数据;基于所述特征数据,确定负载数据波动范围;根据所述负载数据波动范围调整容器的副本数,解决了现有的Kubernetes资源调度技术导致容器因资源不足而退出的技术问题,同时提高了资源利用率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种容器调度的方法、设备及存储介质。
背景技术
随着网络技术的发展,应用的数量在急速增加,从而导致对计算机网络资源的需求也在不断增加,目前通常采用容器将应用捆绑在一起,由于负载数据变化多样,直接采取人工干预的手段无法满足资源动态调度的需要,所以通过使用Kubernetes容器自动扩缩容技术进行动态调整,结合监测到的负载数据,对容器的副本数进行弹性伸缩。
但是目前Kubernetes的资源调度技术针对内存和带宽等资源自动调整技术存在诸多不足,Kubernetes按照资源配额将集群资源按照需求分配给不同应用使用,但是当应用的负载资源超出初始配置的资源限额时,会出现容器因资源不足而退出的现象,从而导致资源利用率低。
发明内容
本申请提供一种容器调度的方法、设备及存储介质,以解决现有的Kubernetes资源调度技术导致容器因资源不足而退出等缺陷。
本申请第一个方面提供一种容器调度的方法,包括:
获取各虚拟机节点的负载数据;
采用经验模态分解法对所述负载数据进行分解处理,获得所述负载数据的整体变化趋势数据;
根据所述整体变化趋势数据,确定样本熵,作为所述负载数据的特征数据;
基于所述特征数据,确定负载数据波动范围;
根据所述负载数据波动范围调整容器的副本数。
可选地,所述负载数据包括虚拟机节点中各应用当前占用资源;
所述获取各虚拟机节点的负载数据,包括:
从各虚拟机节点获取原负载数据;
对所述原负载数据进行预处理,获得所述负载数据。
可选地,所述采用经验模态分解法对所述负载数据进行分解处理,获得所述负载数据的整体变化趋势数据,包括:
基于所述负载数据,通过所述经验模态分解法,确定所述负载数据的上包络函数和下包络函数;
根据所述上包络函数和所述下包络函数,确定所述负载数据的整体变化趋势数据。
可选地,所述根据所述上包络函数和所述下包络函数,确定所述负载数据的整体变化趋势数据,包括:
根据所述上包络函数和所述下包络函数,确定第一固有模态函数分量;
根据所述负载数据和所述第一固有模态函数分量,确定第一残差;
基于所述第一残差,确定第二固有模态函数分量;
根据所述第二固有模态函数分量和所述第一残差,确定第二残差;
若所述第二残差为单调函数,则将所述第二残差作为所述负载数据的整体变化趋势数据;
若所述第二残差不为单调函数,则基于所述第二残差,确定第三固有模态函数分量,并根据所述第三固有模态函数分量和所述第二残差,确定第三残差,以此类推,直至确定出第n残差是单调函数为止,则将所述第n残差作为所述负载数据的整体变化趋势数据。
可选地,所述根据所述整体变化趋势数据,确定样本熵,包括:
根据所述整体变化趋势数据,获得m维的整体变化趋势数据和m+1维的整体变化趋势数据;
根据所述m维的整体变化趋势数据和所述m+1维的整体变化趋势数据,确定所述样本熵;其中,m是指大于等于2且小于n的整数,n为所述整体变化趋势数据中的元素数量。
可选地,所述根据所述整体变化趋势数据,确定样本熵,包括:
将所述负载数据的整体变化趋势数据按照每连续的m个元素为一组进行分组,获得所述m维的整体变化趋势数据;确定每两组变化趋势数据之间的距离差;根据所述负载数据的整体变化趋势数据,确定阈值;根据每两组变化趋势数据之间的距离差和所述阈值,确定距离差小于阈值的数量;根据距离差小于阈值的数据量确定第一均值;
将所述负载数据的整体变化趋势数据按照每连续的m+1个元素为一组进行分组,获得所述m+1维的整体变化趋势数据;确定每两组变化趋势数据之间的距离差;根据每两组变化趋势数据之间的距离差和所述阈值,确定距离差小于阈值的数量;根据距离差小于阈值的数据量确定第二均值;
根据所述第一均值和所述第二均值,确定所述样本熵。
可选地,所述基于所述特征数据,确定负载数据波动范围,包括:
基于所述特征数据,采用训练好的负载数据预测模型,确定负载数据波动范围。
可选地,在基于所述特征数据,采用训练好的负载数据预测模型,确定负载数据波动范围之前,所述方法还包括:
获取训练数据;
基于所述训练数据,采用PSO-SVR算法进行训练,获得所述训练好的负载数据预测模型。
可选地,所述对所述原负载数据进行预处理,获得所述负载数据,包括:
采用一维连续小波函数,去除原负载数据中的噪声数据,获得去噪后的原负载数据;
对所述去噪后的原负载数据进行归一化处理,获得归一化后的原负载数据;
基于所述归一化后的原负载数据,采用小波方差进行周期性压缩,获得所述负载数据。
本申请第二个方面提供一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一个方面以及第一个方面各种可能的设计所述的方法。
本申请第三个方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一个方面以及第一个方面各种可能的设计所述的方法。
本申请提供的容器调度的方法、设备及存储介质,通过获取各虚拟机节点的负载数据;采用经验模态分解法对所述负载数据进行分解处理,获得所述负载数据的整体变化趋势数据;根据所述整体变化趋势数据,确定样本熵,作为所述负载数据的特征数据;基于所述特征数据,确定负载数据波动范围;根据所述负载数据波动范围调整容器的副本数,解决了现有的Kubernetes资源调度技术导致容器因资源不足而退出的技术问题,同时提高了资源利用率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例基于的调度系统的结构示意图;
图2为本申请一实施例提供的容器调度的方法的流程示意图;
图3为本申请另一实施例提供的一种容器调度的方法的流程示意图;
图4为本申请一实施例提供的原负载数据的示例性示意图;
图5为本申请一实施例提供的另一种容器调度的方法的流程示意图;
图6为本申请一实施例提供的包络函数的示例性示意图;
图7为本申请一实施例提供的又一种容器调度的方法的流程示意图;
图8为本申请一实施例提供的间隔带的示例性示意图;
图9为本申请一实施例提供的容器调度的方法的示例性流程示意图;
图10为本申请一实施例提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先对本申请所涉及的名词进行解释:
Kubernetes:Kubernetes是一个可移植和扩展的开源系统,主要用于容器的自动化部署、扩缩容和管理。Kubernetes资源调度就是根据负载的变化情况,动态扩展和缩减资源的方法,结合监测到的负载数据,对容器的副本数进行弹性伸缩。Kubernetes包含Master和Node两种节点,Master节点是集群的控制中心,上运行着kube-apiserver、etcd、kube-scheduler、kube-controller-manager和cloud-controller-manager组件,负责整个集群的管理和控制,而Node节点上只运行Kubelet和kube-proxy组件,是负责运行应用实例的工作节点。Master和Node节点上的各种组件通过操作各种具有资源的Kubernetes对象来完成自身的工作。
经验模态分解法:当数据包含多个波动模式时,通过经验模态分解法将复杂信号分解为有限个固有模态分量函数,这种方法的本质是通过数据的特征时间尺度来获得本征波动模式,然后分解数据。
此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
本申请实施例提供的容器调度的方法,适用于动态调整容器副本数,比如应用在运行或者升级更新等情况下,实际的资源需求会发生改变,为了保证应用可以正常运行,系统资源需要根据当前实际需求重新部署,系统资源包括内存、磁盘、CPU和带宽等。如图1所示,为本申请实施例基于的调度系统的结构示意图。该调度系统可以包括用于进行容器调度的电子设备及至少一个被监控负载数据的虚拟机节点设备。具体的,可以根据获取的虚拟机节点的负载数据,采用经验模态分解法对负载数据进行分解处理,获得负载数据的整体变化趋势数据,根据负载数据的整体变化趋势数据确定样本熵,将样本熵作为负载数据的特征数据,基于特征数据,采用训练好的负载数据预测模型,确定负载数据的波动范围,根据负载数据的波动范围调整容器的副本数,解决了现有的Kubernetes资源调度技术导致容器因资源不足而退出的技术问题,同时提高了资源利用率。
下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
实施例一
本实施例提供一种容器调度的方法,用于进行应用负载预测处理。本实施例的执行主体为电子设备,比如服务器、台式电脑、笔记本电脑、平板电脑及其他可用于数据处理的电子设备。
如图2所示,为本实施例提供的容器调度的方法的流程示意图,该方法包括:
步骤101,获取各虚拟机节点的负载数据。
具体的,虚拟机安装在服务器上,应用安装在虚拟机上,负载数据是指各应用当前占用的资源,该资源包括内存、磁盘、CPU和带宽等,通过获取各虚拟机节点的负载数据,确定各应用当前占用的资源。
步骤102,采用经验模态分解法对负载数据进行分解处理,获得负载数据的整体变化趋势数据。
其中,经验模态分解法可以应用于动态数据,如获取的各虚拟机节点的负载数据。
具体的,采用经验模态分解法,对所获取的各虚拟机节点的负载数据进行分解处理,根据分解后的负载数据,确定该负载数据的整体变化趋势数据,根据整体变化趋势数据,判断各虚拟机节点负载数据的整体变化趋势。
步骤103,根据整体变化趋势数据,确定样本熵,作为负载数据的特征数据。
具体的,采用经验模态分解法,所获得的整体变化趋势数据为单调函数,该单调函数可以是单调递增函数,也可以是单调递减函数。根据该整体变化趋势数据,确定获取的各虚拟机节点的负载数据的样本熵,将所确定的样本熵作为该负载数据的特征数据。
步骤104,基于特征数据,确定负载数据波动范围。
具体的,根据所确定的样本熵作为的负载数据的特征数据,通过训练好的负载数据预测模型,获得该负载数据的预测数据,针对该预测数据,基于采样的Bootstrap方法获得该预测数据的波动范围。
其中,基于采样的Bootstrap方法是从获得的预测数据中进行有放回地随机抽样,将其均值作为样本统计量,进一步确定在1-α的置信水平下Bootstrap样本分布的上α/2分位点和上1-α/2分位点,进而确定在1-α的置信水平下的区间估计为[Z1-α/2,Zα/2],[Z1-α/2,Zα/2]即为该预测数据的波动范围。
示例性的,若预设α=50%,那么该分位数为四分位数,则上α/2分位点为第一四分位点,上1-α/2分位点为第三四分位点,Z1-α/2为第三四分位点对应的样本统计量(预测数据)的值,即样本统计量的后第75%对应的值,Zα/2为第一四分位点对应的样本统计量的值,即样本统计量的后第25%对应的值。
步骤105,根据负载数据波动范围调整容器的副本数。
具体的,根据获得的预测数据的波动范围,对容器的副本数进行动态增加或动态缩减。
示例性的,若当前负载数据超过了预测数据的波动范围,则根据实际需求动态增加容器的副本数。若当前负载数据低于预测数据的波动范围,则根据实际需求动态缩减容器的副本数。
本实施例提供的容器调度的方法,通过获取各虚拟机节点的负载数据,采用经验模态分解法对负载数据进行分解处理,获得负载数据的整体变化趋势数据,根据整体变化趋势数据,确定样本熵,作为负载数据的特征数据,基于特征数据,确定负载数据波动范围,根据负载数据波动范围调整容器的副本数,解决了现有的Kubernetes资源调度技术导致容器因资源不足而退出的技术问题,同时提高了资源利用率。
实施例二
本实施例对实施例一提供的方法做进一步补充说明。
如图3所示,为本实施例提供的一种容器调度的方法的流程示意图,作为一种可实施的方式,在上述实施例一的基础上,可选地,步骤101具体包括:
步骤1011,从各虚拟机节点获取原负载数据。
步骤1012,对原负载数据进行预处理,获得负载数据。
可选地,对原负载数据进行预处理主要包括采用一维连续小波函数,去除原负载数据中的噪声数据,获得去噪后的原负载数据;通过对去噪后的原负载数据进行归一化处理,获得归一化后的原负载数据;基于归一化后的原负载数据,采用小波方差进行周期性压缩,获得负载数据。
如图4所示,为本实施例提供的原负载数据的示例性示意图,图中圈选数据即为噪声数据。
具体的,通过从各虚拟机节点获取原负载数据,首先采用一维连续小波函数对该原负载数据进行去噪处理,即清理原负载数据中的尖锐值,获得去噪后的原负载数据,对去噪后的原负载数据按照分钟进行分段处理,获得多段去噪后的原负载数据,对去噪后的原负载数据进行归一化处理,基于归一化公式为:x′=(x-θ)/σ,其中,θ代表均值,σ代表标准差,将去噪后的原负载数据转换成以0为均值,1为标准差的正态分布数据。对于归一化后的原负载数据,采用小波方差对归一化后的原负载数据进行周期性分析,根据实际情况,选择合适的周期对归一化后的原负载数据进行压缩,从而获得负载数据。
示例性的,针对t时间内的归一化后的原负载数据,在时间轴上进行平移和伸缩两种操作,得到一簇小波函数系:
其中,ψa,b(t)表示子小波函数,a和b分别表示伸缩尺度因子和平移因子,a反应小波的周期长度,b反应时间上的平移,其中a≠0,a∈R,b∈R。计算小波系数的平方值在时间平移轴上的积分得到小波方差:
示例性的,可以将原负载数据按照小波尺度lev进行平移不变小波变换操作,去除原负载数据中对的尖锐值,获得去噪后的原负载数据temp_D,将去噪后的原负载数据temp_D按照分钟进行分段,分段后的原负载数据存放在seg_D中,存放后采用零均值标准化将均值样本序列(去噪后的原负载数据)进行归一化处理,获得归一化后的原负载数据ND,根据归一化后的原负载数据ND,采用小波方差进行周期性分析,确定周期P,按照周期P对归一化后的原负载数据ND进行压缩,最后获得负载数据。
如图5所示,为本实施例提供的另一种容器调度的方法的流程示意图,作为一种可实施的方式,在上述实施例一的基础上,可选地,步骤102具体包括:
步骤1021,基于负载数据,通过经验模态分解法,确定负载数据的上包络函数和下包络函数。
步骤1022,根据上包络函数和下包络函数,确定负载数据的整体变化趋势数据。
可选地,根据上包络函数和下包络函数,确定第一固有模态函数分量;根据负载数据和第一固有模态函数分量,确定第一残差;基于第一残差,确定第二固有模态函数分量;根据第二固有模态函数分量和第一残差,确定第二残差;若第二残差为单调函数,则第二残差为负载数据的整体变化趋势数据;若第二残差不为单调函数,则基于第二残差,确定第三固有模态函数分量,并根据第三固有模态函数分量和第二残差,确定第三残差,以此类推,直至确定出第n残差是单调函数为止,则将第n残差作为负载数据的整体变化趋势数据。
如图6所示,为本实施例提供的包络函数的示例性示意图。
具体的,根据负载数据x(t),曲线连接x(t)的所有局部最大值点,获得x(t)的上包络函数Emax(t),曲线连接x(t)的所有局部最小值点,获得下包络函数Emin(t),则差值函数H1(t)为:
示例性的,若差值函数H1(t)的极值点和过零点个数相等或者相差一个,且上包络函数和下包络函数的均值等于零,则确定该差值函数为第一固有模态函数分量c1(t)=H1(t)。若差值函数不满足上述条件,则将该差值函数作为新的负载数据重复上述操作,直到最新得到的差值函数满足上述条件或者达到停止条件为止,此时得到的差值函数标记为第一固有模态函数分量c1(t)=H1k(t),其中停止条件为:
其中,T表示负载数据的时间范围t的最大值,STD表示差值函数的标准差,H1k(t)表示重复上述处理步骤k次得到的差值函数,H1(k-1)(t)表示重复上述处理步骤k-1次得到的差值函数,μ表示根据实际需求预设的阈值,取值范围通常为(0.2,0.3)。
具体的,根据负载数据x(t)和第一固有模态函数分量c1(t),确定第一残差:
r1(t)=x(t)-c1(t)
具体的,基于第一残差,将该第一残差作为新的负载数据,重复上述操作,进而获得第二固有模态函数分量,依次类推,获得第二到第n固有模态函数分量c2(t)…cn(t),进而获得第n残差rn(t),该过程的终止条件为第n残差rn(t)为单调函数,此时rn(t)为负载数据的整体变化趋势数据。
如图7所示,为本实施例提供的又一种容器调度的方法的流程示意图,作为一种可实施的方式,在上述实施例一的基础上,可选地,步骤103具体包括:
步骤1031,根据整体变化趋势数据,获得m维的整体变化趋势数据和m+1维的整体变化趋势数据。
步骤1032,根据m维的整体变化趋势数据和m+1维的整体变化趋势数据,确定样本熵;其中,m是指大于等于2且小于n的整数,n为整体变化趋势数据中的元素数量。
可选地,将负载数据的整体变化趋势数据按照每连续的m个元素为一组进行分组,获得m维的整体变化趋势数据;确定每两组变化趋势数据之间的距离差;根据负载数据的整体变化趋势数据,确定阈值;根据每两组变化趋势数据之间的距离差和阈值,确定距离差小于阈值的数量;根据距离差小于阈值的数据量确定第一均值;将负载数据的整体变化趋势数据按照每连续的m+1个元素为一组进行分组,获得m+1维的整体变化趋势数据;确定每两组变化趋势数据之间的距离差;根据每两组变化趋势数据之间的距离差和阈值,确定距离差小于阈值的数量;根据距离差小于阈值的数据量确定第二均值。根据第一均值和第二均值,确定样本熵。
具体的,将负载数据的整体变化趋势rn(t)={r1,r2,...,rn},转化为m维的负载数据的整体变化趋势(按照每连续的m个元素为一组进行分组):
Rm(t)={(r1,...,rm),(r2,...,rm+1),...,(rn-m+1,...,rn)}
其中,n表示rn(t)中元素的总体数量(整体变化趋势数据中的元素数量),m取大于等于2且小于n的整数。
根据m维的负载数据的整体变化趋势Rm(t),确定Rm(t)中任意两个分量(两组元素)之间的距离差:
其中,Rm(i)=(ri,...,ri+m-1),i=1,...,n-m+1;Rm(j)=(rj,...,rj+m-1),j=1,...,n-m+1。
示例性的,若计算Rm(t)中的第一分量和第二分量之间的距离差,则此时i=1,j=2,k=0,1,...,m-1,计算|r1+k-r2+k|,其中k从0开始取值,并依次取值到m-1,最后确定计算结果的最大值,其中的最大值即为第一分量和第二分量之间的距离差。
在确定Rm(t)中任意两个分量之间的距离差后,根据负载数据的整体变化趋势数据,确定阈值μ:
μ=k·std(rn(t))
其中,std(rn(t))表示rn(t)的标准差,其中k>0,k为根据实际情况预设的值,其中k的取值范围通常为(0.1,0.25)。
根据Rm(t)中任意两个分量之间的距离差和阈值,确定Rm(t)中分量之间距离差小于阈值的个数,即在Rm(t)所有分量之间的距离差中判断有多少个距离差小于阈值,统计公式为:
将负载数据的整体变化趋势rn(t)={r1,r2,...,rn},转化为m+1维的负载数据的整体变化趋势:
Rm+1(t)={(r1,...,rm+1),(r2,...,rm+2),...,(rn-m,...,rn)}
示例性的,若负载数据的整体变化趋势rn(t)={1,2,3,4,5,6},当转化成m维的负载数据的整体变化趋势和m+1维的负载数据的整体变化趋势时,若m=2,则R2(t)={(1,2),(2,3),(3,4),(4,5),(5,6)},若m=3,则R3(t)={(1,2,3),(2,3,4),(3,4,5),(4,5,6)},依次类推,其中,2≤m<n。
根据负载数据的整体变化趋势m维的均值Bm(μ)和m+1维的均值Bm+1(μ),确定负载数据m维的样本熵:
重复上述操作,m依次取大于等于2且小于n的所有整数,确定m取2~n-1所有整数时所对应的样本熵,将确定的所有样本熵的集合(即n-2个样本熵的集合)作为负载数据的特征数据。
作为一种可实施的方式,在上述实施例一的基础上,可选地,步骤104具体包括:
步骤1041,基于特征数据,采用训练好的负载数据预测模型,确定负载数据波动范围。
可选地,获取训练数据;基于训练数据,采用PSO-SVR算法进行训练,获得训练好的负载数据预测模型。
具体的,首先基于获取的训练数据,确定SVR的最优参数,再根据确定的SVR的最优参数建立SVR预测模型。
示例性的,首先在D维空间中,初始化N个PSO粒子的位置,Xl(t)={xl1(t),xl2(t),...,xlD(t)},l=1,2,...,N,初始化的N个PSO粒子的速度表示为Vl(t)={vl1(t),vl2(t),...,vlD(t)},N个PSO粒子的最优位置表示为Pl(t)={pl1(t),pl2(t),...,plD(t)}。
其中,xl1(t),xl2(t),...,xlD(t)均为位置向量,D表示Xl(t)向量组包括D个位置向量,vl1(t),vl2(t),...,vlD(t)为N个PSO粒子运动速度的速度值,pl1(t),pl2(t),...,plD(t)为N个PSO粒子最优位置的位置向量。
具体的,采用PSO-SVR算法进行训练过程中,初始化的N个PSO粒子根据实际需求,更新最优位置。
示例性的,PSO粒子的最优位置更新策略为:
其中,f[Xl(t)]和f[Pl(t-1)]分别表示PSO粒子在Xl(t)和Pl(t-1)位置上的适应函数,其中Pl(t-1)表示Pl(t)的上一个位置,即将PSO粒子的当前位置情况与上一个最优位置情况作比较(即根据对应的适应函数值的大小进行比较),进而确定最新的PS0粒子最优位置。
可选地,在PSO粒子的最优位置更新的过程中,PSO粒子的速度更新策略为:
vld(t)=ω(t)·vld(t-1)+c1r1(pld(t)-xld(t))+c2r2(pgd(t)-xld(t))
其中,1≤d≤D,d∈Z,c1和c2表示加速常数,r1和r2为0~1之间的随机数,ω(t)表示权重,vld(t-1)表示PSO粒子在上一个位置的速度(即更新前的速度),pgd(t)表示更新后的最新最优位置向量。
其中,ω(t)、ωstart(t)以及ωend(t)均为数值,ωstart(t)表示初始权重,ωend(t)表示最终权重,ωstart(t)以及ωend(t)表示预设权重范围的两个端点值,tmax表示最大迭代次数,t表示迭代次数。
示例性的,PSO粒子的当前位置更新的策略为:
xld(t)=xld(t-1)+vld(t),1≤d≤D,d∈Z
其中,xld(t-1)表示PSO粒子在上一个位置的位置向量(即更新前的位置向量),将更新后的PSO粒子当前位置向量代入PSO粒子的最优位置更新策略,判断更新后的PSO粒子当前位置是否可以作为新的最优位置。
示例性的,最大迭代次数tmax可以预设为10,迭代次数t表示循环计算的次数,t可以从1开始依次从小到大取值,当t=1时,首先确定权重ω(t=1),根据权重ω(t=1),确定更新后的PSO粒子的速度vld(t=1),根据更新后的PSO粒子的速度vld(t=1),确定PSO粒子更新后的当前位置xld(t=1),最后将t=1时确定的PSO粒子的当前位置作为最优位置,记为pgd(t=1);当t=2时,重复上述操作,确定t=2时的PSO粒子更新后的当前位置xld(t=2),基于PSO粒子的最优位置更新策略将xld(t=2)与上一个位置pgd(t=1)进行比较,确定最优位置,若xld(t=2)在相比之下为最优位置,则记为pgd(t=2),若xld(t=2)在相比之下不是最优位置,则此时最优位置依然记为pgd(t=1)。其中t从1开始依次取值到最大迭代次数tmax,即当t=10时,停止循环上述操作,最终确定的最优位置pgd(t)即为全局最优位置,全局最优位置记为gbest(t):
gbest(t)={pg1(t),pg2(t),...,pgD(t)}
可选地,可以根据更新后PSO粒子的最优位置,计算当前位置的预测误差,若确定此时PSO粒子的预测误差小于预设的预测误差阈值,则停止循环上述操作,确定当前的PSO粒子的最优位置为全局最优位置。
具体的,根据PSO粒子的全局最优位置确定SVR的最优参数,所要确定的SVR的最优参数主要包括惩罚系数C和径向基半径σ,最后根据SVR的最优参数建立SVR预测模型。
示例性的,在使用SVR进行模型预测时,第z个预测值yz与其短期的历史数据具有函数关系yz=f(yz-1,yz-2,...,yz-q),其中,q表示向量空间维度,决定时间窗口的大小。因此,将负载数据的特征数据的格式转换成{(x1,y1),(x2,y2),...,(xz,yz),...,(xM,yM)},xz∈Rq,yz∈R。其中,M为转换后的预测数据组数,xz表示输入向量,yz表示输出数值,Rq表示q维向量空间,R表示实数,此时SVR回归公式为:
f(x)=ωT·φ(x)+b,ω∈Rq
其中,ω表示权重矩阵,ωT为ω的转置矩阵,b表示偏差,φ(x)表示非线性映射,为使得f(x)尽可能的接近输出数值yz,ω与b均为待定参数,在SVR预测模型中,当SVR回归公式f(x)与输出数值yz完全相同时,预测数据的准确率最高。q在(1,M)区间内分别取多个值进行多组实验,以均方根误差为评价标准,选择误差最小的值作为时间窗口大小g的取值。
可选地,以f(x)为中心,构建一个宽度为2ε的间隔带,如图8所示,为本实施例提供的间隔带的示例性示意图,图中虚线部分表示界限,若训练数据落入此间隔带,则确定预测数据正确,因此将SVR模型的最大化超平面间隔的问题转化为如下最小化问题:
基于最小化问题引入拉格朗日因子,获得拉格朗日函数L:
示例性的,若上述处理拉格朗日函数L的操作过程满足KKT条件(KKT条件是极小值点存在的必要条件)则确定约束条件:
根据确定的权重矩阵ω,将SVR回归公式f(x)转换为:
根据上述操作过程,可以获得偏差b:
示例性的,当引入核函数K(xz,x′z)=<φ(xz)φ(x′z)>时,回归方程函数SVR回归公式f(x)转换为:
可选地,核函数K(xz,x′z)可以采用径向核函数:
其中,σ表示径向基半径。
具体的,该SVR预测模型根据负载数据的特征数据进行预测操作,进而确定该负载数据的预测数据,根据预测数据确定预测数据的波动范围,进而根据预测数据的波动范围动态调整容器的副本数。
示例性的,如图9所示,为本实施例提供的容器调度的方法的示例性流程示意图。首先,针对获取的Kubernetes原负载数据进行数据预处理,获得负载数据,针对获得的负载数据采用经验模态分解法进行负载数据分解,确定该负载数据的整体变化趋势,根据该负载数据的整体变化趋势确定样本熵,进而确定该负载数据的特征数据;其次,采用PSO算法寻找SVR最优参数,进而获得惩罚系数和径向基半径,根据该惩罚系数和径向基半径,建立SVR预测模型;最后采用该SVR预测模型进行数据预测,获得预测数据,根据获得的预测数据确定该负载数据的波动范围,根据该负载数据的波动范围动态调整容器的副本数。
本实施例提供的容器调度的方法,通过获取各虚拟机节点的负载数据,采用经验模态分解法对负载数据进行分解处理,获得负载数据的整体变化趋势数据,根据整体变化趋势数据,确定样本熵,作为负载数据的特征数据,基于特征数据,采用训练好的负载数据预测模型,确定负载数据波动范围,进一步提高了负载数据波动范围的准确性,根据负载数据波动范围调整容器的副本数,解决了现有的Kubernetes资源调度技术导致容器因资源不足而退出的技术问题,同时提高了资源利用率。
实施例三
本实施例提供一种电子设备,用于执行上述实施例提供的方法。
如图10所示,为本实施例提供的电子设备的结构示意图。该电子设备30包括:至少一个处理器31和存储器32;
存储器存储计算机执行指令;至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行如上任一实施例提供的方法。
根据本实施例的电子设备,通过获取各虚拟机节点的负载数据,采用经验模态分解法对负载数据进行分解处理,获得负载数据的整体变化趋势数据,根据整体变化趋势数据,确定样本熵,作为负载数据的特征数据,基于特征数据,确定负载数据波动范围,根据负载数据波动范围调整容器的副本数,解决了现有的Kubernetes资源调度技术导致容器因资源不足而退出的技术问题,同时提高了资源利用率。
实施例四
本实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上任一实施例提供的方法。
根据本实施例的计算机可读存储介质,通过获取各虚拟机节点的负载数据,采用经验模态分解法对负载数据进行分解处理,获得负载数据的整体变化趋势数据,根据整体变化趋势数据,确定样本熵,作为负载数据的特征数据,基于特征数据,确定负载数据波动范围,根据负载数据波动范围调整容器的副本数,解决了现有的Kubernetes资源调度技术导致容器因资源不足而退出的技术问题,同时提高了资源利用率。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (9)
1.一种容器调度的方法,其特征在于,包括:
获取各虚拟机节点的负载数据;
采用经验模态分解法对所述负载数据进行分解处理,获得所述负载数据的整体变化趋势数据;
根据所述整体变化趋势数据,确定样本熵,作为所述负载数据的特征数据;
基于所述特征数据,确定负载数据波动范围;
根据所述负载数据波动范围调整容器的副本数;
其中,所述采用经验模态分解法对所述负载数据进行分解处理,获得所述负载数据的整体变化趋势数据,包括:
根据负载数据曲线连接的所有局部最大值点,获得所述负载数据的上包络函数,根据负载数据曲线连接的所有局部最小值点,获得下包络函数;
将所述负载数据与上包络函数加下包络函数的和的一半的差值确定为差值函数;
若所述差值函数满足条件,则确定所述差值函数为第一固有模态函数分量;其中,所述条件为差值函数的极值点和过零点个数相等或者相差一个,且上包络函数和下包络函数的均值等于零;
若差值函数不满足所述条件,则将所述差值函数作为新的负载数据重复上述操作,直到最新得到的差值函数满足所述条件,将最新得到的满足所述条件的差值函数标记为第一固有模态函数分量;
将所述负载数据与所述第一固有模态函数分量的差值确定为第一残差;
将所述第一残差确定为新的负载数据,重复上述操作,进而获得第二固有模态函数分量,依次类推,获得第n固有模态函数分量,进而获得第n残差,若第n残差为单调函数,则将第n残差确定为负载数据的整体变化趋势数据;其中,n为正整数。
2.根据权利要求1所述的方法,其特征在于,所述负载数据包括虚拟机节点中各应用当前占用资源;
所述获取各虚拟机节点的负载数据,包括:
从各虚拟机节点获取原负载数据;
对所述原负载数据进行预处理,获得所述负载数据。
3.根据权利要求1所述的方法,其特征在于,所述根据所述整体变化趋势数据,确定样本熵,包括:
根据所述整体变化趋势数据,获得m维的整体变化趋势数据和m+1维的整体变化趋势数据;
根据所述m维的整体变化趋势数据和所述m+1维的整体变化趋势数据,确定所述样本熵;其中,m是指大于等于2且小于n的整数,n为所述整体变化趋势数据中的元素数量。
4.根据权利要求3所述的方法,其特征在于,所述根据所述整体变化趋势数据,确定样本熵,包括:
将所述负载数据的整体变化趋势数据按照每连续的m个元素为一组进行分组,获得所述m维的整体变化趋势数据;确定每两组变化趋势数据之间的距离差;根据所述负载数据的整体变化趋势数据,确定阈值;根据每两组变化趋势数据之间的距离差和所述阈值,确定距离差小于阈值的数量;根据距离差小于阈值的数据量确定第一均值;
将所述负载数据的整体变化趋势数据按照每连续的m+1个元素为一组进行分组,获得所述m+1维的整体变化趋势数据;确定每两组变化趋势数据之间的距离差;根据每两组变化趋势数据之间的距离差和所述阈值,确定距离差小于阈值的数量;根据距离差小于阈值的数据量确定第二均值;
根据所述第一均值和所述第二均值,确定所述样本熵。
5.根据权利要求1所述的方法,其特征在于,所述基于所述特征数据,确定负载数据波动范围,包括:
基于所述特征数据,采用训练好的负载数据预测模型,确定负载数据波动范围。
6.根据权利要求5所述的方法,其特征在于,在基于所述特征数据,采用训练好的负载数据预测模型,确定负载数据波动范围之前,所述方法还包括:
获取训练数据;
基于所述训练数据,采用PSO-SVR算法进行训练,获得所述训练好的负载数据预测模型。
7.根据权利要求2所述的方法,其特征在于,所述对所述原负载数据进行预处理,获得所述负载数据,包括:
采用一维连续小波函数,去除原负载数据中的噪声数据,获得去噪后的原负载数据;
对所述去噪后的原负载数据进行归一化处理,获得归一化后的原负载数据;
基于所述归一化后的原负载数据,采用小波方差进行周期性压缩,获得所述负载数据。
8.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至7任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010016729.3A CN111209083B (zh) | 2020-01-08 | 2020-01-08 | 一种容器调度的方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010016729.3A CN111209083B (zh) | 2020-01-08 | 2020-01-08 | 一种容器调度的方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111209083A CN111209083A (zh) | 2020-05-29 |
CN111209083B true CN111209083B (zh) | 2023-05-09 |
Family
ID=70785732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010016729.3A Active CN111209083B (zh) | 2020-01-08 | 2020-01-08 | 一种容器调度的方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111209083B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737317A (zh) * | 2020-06-23 | 2020-10-02 | 广联达科技股份有限公司 | 一种测算方法及装置 |
CN112559022A (zh) * | 2020-12-16 | 2021-03-26 | 同盾控股有限公司 | Jenkins高可用的系统及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102822639A (zh) * | 2010-01-25 | 2012-12-12 | 吉尼瓦洁净技术公司 | 器具的自动检测 |
CN107368369A (zh) * | 2017-06-27 | 2017-11-21 | 中国联合网络通信集团有限公司 | 分布式容器管理方法及系统 |
CN108829494A (zh) * | 2018-06-25 | 2018-11-16 | 杭州谐云科技有限公司 | 基于负载预测的容器云平台智能资源优化方法 |
CN108960339A (zh) * | 2018-07-20 | 2018-12-07 | 吉林大学珠海学院 | 一种基于宽度学习的电动汽车感应电动机故障诊断方法 |
CN110457131A (zh) * | 2019-07-31 | 2019-11-15 | 华中科技大学 | 基于Docker容器的电力系统超算平台任务调度方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10841288B2 (en) * | 2018-06-25 | 2020-11-17 | Intel Corporation | Cloud key management for AFU security |
-
2020
- 2020-01-08 CN CN202010016729.3A patent/CN111209083B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102822639A (zh) * | 2010-01-25 | 2012-12-12 | 吉尼瓦洁净技术公司 | 器具的自动检测 |
CN107368369A (zh) * | 2017-06-27 | 2017-11-21 | 中国联合网络通信集团有限公司 | 分布式容器管理方法及系统 |
CN108829494A (zh) * | 2018-06-25 | 2018-11-16 | 杭州谐云科技有限公司 | 基于负载预测的容器云平台智能资源优化方法 |
CN108960339A (zh) * | 2018-07-20 | 2018-12-07 | 吉林大学珠海学院 | 一种基于宽度学习的电动汽车感应电动机故障诊断方法 |
CN110457131A (zh) * | 2019-07-31 | 2019-11-15 | 华中科技大学 | 基于Docker容器的电力系统超算平台任务调度方法 |
Non-Patent Citations (4)
Title |
---|
Research on Resource Prediction Model Based on Kubernetes Container Auto-scaling Technology;Anqi Zhao 等;《IOP Conference Series: Materials Science and Engineering》;第569卷(第5期);第1-7页 * |
基于容器云平台的网络资源管理与配置系统设计与实现;陈星宇;《中国优秀硕士学位论文全文数据库 信息科技辑》;中国学术期刊(光盘版)电子杂志社(第7期);第I139-48页 * |
基于聚类经验模态分解-样本熵和优化极限学习机的风电功率多步区间预测;张亚超 等;《电网技术》;第40卷(第7期);第2045-2051页 * |
电信行业分布式镜像仓库的研究;王晓峰 等;《电信技术》(第9期);第36-38页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111209083A (zh) | 2020-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111209083B (zh) | 一种容器调度的方法、设备及存储介质 | |
CN105378714B (zh) | 时间序列的快速分组 | |
WO2021129086A1 (zh) | 流量预测方法、装置以及存储介质 | |
CN112685273A (zh) | 异常检测方法、装置、计算机设备和存储介质 | |
CN111382906B (zh) | 一种电力负荷预测方法、系统、设备和计算机可读存储介质 | |
US11435924B2 (en) | Storage system and storage cost optimization method | |
US20230206083A1 (en) | Optimizing gradient boosting feature selection | |
US11714834B2 (en) | Data compression based on co-clustering of multiple parameters for AI training | |
CN110263917B (zh) | 一种神经网络压缩方法及装置 | |
Zhang et al. | An infeasible stochastic approximation and projection algorithm for stochastic variational inequalities | |
US20190392312A1 (en) | Method for quantizing a histogram of an image, method for training a neural network and neural network training system | |
CN111949498A (zh) | 应用服务器异常预测方法及系统 | |
CN115438590B (zh) | 一种基于bp神经网络的降水预报订正方法及系统 | |
CN114830137A (zh) | 用于生成预测模型的方法和系统 | |
US11507782B2 (en) | Method, device, and program product for determining model compression rate | |
CN112001495B (zh) | 神经网络的优化方法、系统、设备及可读存储介质 | |
CN114492251A (zh) | 超算环境的低速流场发散处理方法、装置、设备及介质 | |
CN114418207A (zh) | 一种时间序列趋势预测方法和装置 | |
CN114065913A (zh) | 模型量化方法、装置及终端设备 | |
Yan et al. | TopoSZ: Preserving Topology in Error-Bounded Lossy Compression | |
CN113537447A (zh) | 多层神经网络的生成方法、装置、应用方法及存储介质 | |
CN110764696B (zh) | 向量信息存储及更新的方法、装置、电子设备及存储介质 | |
Blohsfeld et al. | Maintaining nonparametric estimators over data streams | |
US11836531B2 (en) | Method, device, and program product for managing computing system | |
CN117934944A (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 |