一种容器调度的方法、设备及存储介质与流程

文档序号:20917057发布日期:2020-05-29 13:40阅读:249来源:国知局
一种容器调度的方法、设备及存储介质与流程

本申请涉及计算机技术领域,尤其涉及一种容器调度的方法、设备及存储介质。



背景技术:

随着网络技术的发展,应用的数量在急速增加,从而导致对计算机网络资源的需求也在不断增加,目前通常采用容器将应用捆绑在一起,由于负载数据变化多样,直接采取人工干预的手段无法满足资源动态调度的需要,所以通过使用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。计算小波系数的平方值在时间平移轴上的积分得到小波方差:

其中,的共轭函数,f(t)表示归一化后的原负载数据。通过变换不同的伸缩尺度,将不同伸缩尺度对应的小波方差绘制成小波方差图,根据小波方差最大值对应的伸缩尺度,确定负载数据的周期。

示例性的,可以将原负载数据按照小波尺度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)所有分量之间的距离差中判断有多少个距离差小于阈值,统计公式为:

根据rm(t)中分量之间距离差小于阈值的个数的统计结果,统计rm(j)中距离差小于阈值的个数,进而确定比值

根据比值确定均值bm(μ):

将负载数据的整体变化趋势rn(t)={r1,r2,...,rn},转化为m+1维的负载数据的整体变化趋势:

rm+1(t)={(r1,...,rm+1),(r2,...,rm+2),...,(rn-m,...,rn)}

重复上述操作,确定m+1维的比值进而确定m+1维的均值bm+1(μ):

示例性的,若负载数据的整体变化趋势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模型的最大化超平面间隔的问题转化为如下最小化问题:

其中,c表示惩罚因子,ε表示目标值(即预测数据)超出范围的界限,ξz表示在目标值之上超出ε的值,表示在目标值之下超出ε的值。

基于最小化问题引入拉格朗日因子,获得拉格朗日函数l:

其中,αz,η,表示拉格朗日因子。

基于拉格朗日函数l,分别对ω、b、αz以及求偏导,获得以及并分别令以及等于零,进而确定权重矩阵ω:

示例性的,若上述处理拉格朗日函数l的操作过程满足kkt条件(kkt条件是极小值点存在的必要条件)则确定约束条件:

根据确定的权重矩阵ω,将svr回归公式f(x)转换为:

其中,能够使的样本为支持向量,支持向量距离超平面最近。

根据上述操作过程,可以获得偏差b:

根据上述约束条件,选取多个满足该约束条件的αz,进一步计算可确定偏差b:

其中,len表示的个数,即选取的多个αz,中满足的数量,δk表示预测样本(特征数据)误差,该误差为均方根误差,即预测值与真实值偏差的平方与观测次数m比值的平方根,该误差公式具体为:

示例性的,当引入核函数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-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1