CN111491006B - 负载感知的云计算资源弹性分配系统及方法 - Google Patents

负载感知的云计算资源弹性分配系统及方法 Download PDF

Info

Publication number
CN111491006B
CN111491006B CN202010140563.6A CN202010140563A CN111491006B CN 111491006 B CN111491006 B CN 111491006B CN 202010140563 A CN202010140563 A CN 202010140563A CN 111491006 B CN111491006 B CN 111491006B
Authority
CN
China
Prior art keywords
resource
amount
scale
resources
load
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
Application number
CN202010140563.6A
Other languages
English (en)
Other versions
CN111491006A (zh
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.)
Tianjin University
Original Assignee
Tianjin University
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 Tianjin University filed Critical Tianjin University
Priority to CN202010140563.6A priority Critical patent/CN111491006B/zh
Publication of CN111491006A publication Critical patent/CN111491006A/zh
Application granted granted Critical
Publication of CN111491006B publication Critical patent/CN111491006B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明属云计算技术领域,为实现在线控制资源分配,并优化资源分配结果,最小化长期在线云服务的资源分配量。本发明采取的技术方案是,负载感知的云计算资源弹性分配系统及方法,包括:请求负载量预测器,用于学习历史请求负载量,并预测下一个时期的请求负载量;资源重建器,用于构建资源性能模型以估计支持预测请求负载量的所需资源;在线控制器用于在运行时动态调整服务的已分配资源,当预测错误高到接近服务级别目标SLO违规时被激活,利用资源回收算法来回收过度配置的资源以提高资源利用效率。本发明主要应用于云资源调配场合。

Description

负载感知的云计算资源弹性分配系统及方法
技术领域
本发明涉及云计算技术领域,特别是基于容器的资源供应分配领域。
背景技术
云计算使服务开发人员能够专注于服务本身,而无需担心服务部署。它使服务开发人员摆脱了复杂和沉重的维护工作。通过简单地从云提供商租用大量的计算能力(例如,服务器,存储,网络),并按需支付资源,从而开展硬件基础设施工作。虽然用户总是希望降低成本,通过精确塑造资源需求来租赁他们的服务,但是云提供商由于不断变化的工作负载和来自共享云的租户的不可预测的资源争用而无法提供稳定的质量服务(Quality ofService,简称QoS)。破坏用户体验的代价相当昂贵,例如,只需一秒钟的页面加载速度就可以降低成本亚马逊的销售额为16亿美元。在这种情况下,用户必须求助于资源过度配置以保证其QoS。然而浪费的过度配置导致资源利用率低,从而增加了云服务的成本。例如,Twitter的资源预留可以达到总容量的80%,而他们的生产集群平均CPU利用率一直低于20%。同样,来自谷歌和阿里云的跟踪表明,他们仅仅实现了25-35%的总CPU利用率和40%的总体内存利用率。
如何在保证QoS的同时降低资源配置成本是一项重大挑战。为了应对这一挑战,大多数现有工作专注于研究竞争应用程序的干扰特性,并尝试增加可以在有限资源中部署的应用程序的数量。这当然有助于降低配置成本,但它们没有考虑到请求负载量波动的影响,特别是对于长期运行的在线服务。特别地,干扰感知资源分配与工作负载感知资源分配正交,并且它们可以集成在一起以进一步降低构建成本。工作负载感知资源扩展系统仅支持批量作业的资源扩展,并且由于长期运行功能,不能直接应用于在线服务的资源分配。CloudScale1和PRESS2能够为在线服务运行资源扩展,但它们基于虚拟机(VirtualMachine,简称VM)的解决方案仅支持调整CPU(Center Process Unit,中央处理器)频率。当它们用于启动或停止虚拟机时,通常需要很长时间才能生效,这与其他第二级尾部延迟要求相比是非常不可接受的。此外,实验评估还表明,他们无法严格保证尾部延迟服务级别目标(Service Level Object,简称SLO)。EFRA3为容器启用的云系统提供了一种资源扩展方法,并通过工作负载感知的scale-up(纵向资源扩展)方法来管理资源分配。但是,他们的解决方案只适用于具有强稳定周期特征的工作负载,并且当工作负载明显高时,不支持灵活scale-out(横向资源扩展)和scale-up组合决策。
在这项工作中,目标是在保证尾延迟SLO的基础上进一步降低长期在线服务的资源提供成本。由于减少了配置资源,因此违反SLO的风险很高,所以应该非常谨慎地决定何时以及需要多少资源。建议根据工作负载和云系统状态,在scale-out和scale-up上扩展分配的资源。实现这一目标有几个挑战。首先,虽然生产请求负载量已显示周期性特征,但它们的周期并不总是稳定的。比如噪声,如增量周期性负载,爆发增长和周末时期的下降,严重增加了预测的误差,使请求负载量预测变得非常困难。其次,考虑到请求负载量估算,如何获得支持这种请求负载量的恰当数量的资源是第二个挑战。特别是,虽然容器技术提供了一种轻量级的资源扩展方法,scale-up和scale-out仍然会对启动成本产生不同的影响。应该推导出来scale-up和scale-out的最佳组合。第三,由于预测误差是不可避免的,如何保证预测误差下的尾延迟SLO也是一个挑战。
1Z.Shen,S.Subbiah,X.Gu,and J.Wilkes,“Cloudscale:Elastic resourcescaling for multi-tenant cloud systems,”in Proceedings of the 2Nd ACMSymposium on Cloud Computing,SOCC’11,(New York,NY,USA),pp.5:1–5:14,ACM,2011.
2Z.Gong,X.Gu,and J.Wilkes,“Press:Predictive elastic resource scalingfor cloud systems.,”CNSM,vol.10,pp.9–16,2010.
3B.Cai,R.Zhang,L.Zhao,and K.Li,“Less provisioning:A finegrainedresource scaling engine for long-running services with tail latencyguarantees,”in Proceedings of the 47th International Conference on ParallelProcessing,p.30,ACM,2018.
4V.Oropeza and M.Sacchi,“Simultaneous seismic data denoising andreconstruction via multichannel singular spectrum analysis,”Geophysics,vol.76,no.3,pp.V25–V32,2011。
5D.Gmach,J.Rolia,L.Cherkasova,G.Belrose,T.Turicchi,and A.Kemper,“Anintegrated approach to resource pool management:Policies,efficiency andquality metrics,”in DSN,pp.326–335,IEEE,2008。
发明内容
为克服现有技术的不足,本发明旨在解决在保证尾部延迟SLO的基础上,长期在线云服务的资源过度分配问题,通过综合考虑工作负载预测,分配资源扩展或收缩以及scale-up和scale-out决策,在线控制资源分配等因素,优化资源分配结果,从而在保证尾部延迟SLO的基础上,最小化长期在线云服务的资源分配量。为此,本发明采取的技术方案是,负载感知的云计算资源弹性分配系统,包括:
请求负载量预测器,用于学习历史请求负载量,并预测下一个时期的请求负载量,使用奇异谱分解SSA(Singular Spectrum Analysis)方法对历史数据进行预处理,然后训练长短记忆期记忆网络LSTM(Long Short-Term Memory)网络进行预测;
资源重建器,用于构建资源性能模型以估计支持预测请求负载量的所需资源,然后,考虑到横向资源扩展scale-out和纵向资源扩展scale-up的操作成本,将资源缩放表示为数学规划问题,最后,推导出具有最小开销的最佳scale-up和scale-out组合策略;
在线控制器用于在运行时动态调整服务的已分配资源,当预测错误高到接近服务级别目标SLO违规时被激活,利用资源回收算法来回收过度配置的资源以提高资源利用效率。
请求负载量预测器中:
当历史请求负载量到达时,先对历史请求负载量进行预处理,再将处理后的数据输入到预测模型中训练并对下一个周期的请求负载量进行预测,具体步骤如下:
1)预处理:使用奇异谱分解SSA方法预处理历史工作负荷数据,以过滤掉短期噪声;
2)预测模型:采用LSTM模型用于预测请求负载量,当输入序列的长度非常大时,LSTM通过控制忘记门来避免梯度消失或梯度爆炸,LSTM的结构有h个LSTM单元,k个输出和两个状态:隐藏状态和单元状态,一个单元传递给下一个单元,这些状态确保在单元之间传输顺序信息,制定预测问题如下:
1...ωk-1k)=LSTM(ωh-1h-2,...,ω0) (1)
其中ωt是时间t的请求负载量,h和k分别是历史序列长度和预测长度,从方程(1),预测问题总结如下:给定一系列具有h长度的历史工作负载,预测后续h工作负载;
使用均方根误差RMSE来测量生成的标签和实际标签的损失,RMSE定义如下
Figure BDA0002398937220000031
其中i是训练中每个时期的批量大小LSTM,并且pt是预测值,yt是评估值。
负载感知的云计算资源弹性分配方法,步骤如下:
请求负载量预测,学习历史请求负载量,并预测下一个时期的请求负载量,使用奇异谱分解SSA方法对历史数据进行预处理,然后训练长短记忆期记忆网络LSTM模型进行预测;
资源重建,构建资源性能模型以估计支持预测请求负载量的所需资源,然后,考虑到横向资源扩展scale-out和纵向资源扩展scale-up的操作成本,将资源缩放表示为数学规划问题,最后,推导出具有最小开销的最佳scale-up和scale-out组合策略;
在线控制:在运行时动态调整服务的已分配资源,当预测错误高到接近服务级别目标SLO违规时被激活,利用资源回收算法来回收过度配置的资源以提高资源利用效率。
请求负载量预测详细步骤如下:
1)预处理:使用SSA方法预处理历史工作负荷数据,以过滤掉短期噪声,SSA用于分析一维时间序列数据,它根据观测到的时间序列构造轨迹矩阵,并将其分解为一个分量之和;
2)预测模型:采用LSTM,用于预测请求负载量,当输入序列的长度非常大时,LSTM通过控制忘记门来避免梯度消失或梯度爆炸,更具体地说,LSTM的结构有h个LSTM单元,k个输出和两个状态:隐藏状态和单元状态,一个单元传递给下一个单元,这些状态确保在单元之间传输顺序信息,制定预测问题如下:
1...ωk-1k)=LSTM(ωh-1h-2,...,ω0) (1)
其中ωt是时间t的请求负载量,h和k分别是历史序列长度和预测长度,从方程(1),预测问题总结如下:给定一系列具有h长度的历史工作负载,预测后续h工作负载,使用均方根误差RMSE来测量生成的标签和实际标签的损失,RMSE定义如下
Figure BDA0002398937220000032
其中i是训练中每个时期的批量大小LSTM,并且pt是预测值,yt是评估值。
资源重建详细步骤如下:
1)获取所需的资源:构建负载-资源模型来指导资源分配,遵循该模型,在请求负载量预测期给定预测请求负载量的情况下,获得所需资源的数量,当CPU是处理工作的瓶颈资源时,分配更多的CPU资源将有助于提高服务吞吐量,具体步骤为:
1.1)基于公式R=α·y+β,其中R表示所需资源,y表示请求负载量,α和β是线性模型的系数;
1.2)为了提高模型拟合的精度,使用最近邻方法检测并去除异常值:对于每个数据点,计算到第k个最近邻居的距离,具有最大距离的点被识别为异常值,在去除异常值之后,推导出线性模型,该模型导致到样本点的最小欧氏距离,因此取得α和β的值;
2)将请求负载量预测器所获得的预测请求负载量代入到所述预测模型得到预测所需资源R;
3)Scale-up和scale-out决策:由于容器支持scale-up和scale-out操作,因此需要根据所需资源R,现有容器的当前配置和每台物理机器中的可用资源来确定它们的组合;
3.1)如果所需资源量小于所有容器最大资源量,则进行scale-up操作,即每个容器所分配的资源量等于所需资源量除以容器数量;
3.2)如果所需资源量大于所有容器最大资源量,则进行scale-out操作,即增大容器数量至满足所需资源量小于当前容器最大资源量,每个容器所分配的资源量为所需资源量除以容器数量。
本发明的特点及有益效果是:
该发明实现为docker引擎中的一个模块,并对其在生产中的redis集群的工作负载效率进行了评估,实验结果表明本发明在保证尾延迟SLO的情况下减少了平均资源过度供应成本的53%以上。
附图说明:
图1为本发明系统的架构设计,系统包括请求负载量控制器(负责根据历史请求负载量预测下一个周期的请求负载量),资源重建器(负责资源分配决策和实施),在线控制器(负责监控SLO并据此调整分配资源以及资源回收)系统运行在redis集群内,提供资源分配方案计算。
图2为用SSA对原始数据进行预处理之前和之后的结果对比。深色线为原始数据,浅色线为经过SLO后的数据图。
图3为LSTM算法结构图,LSTM的结构有h个LSTM单元,k个输出和两个状态:隐藏状态和单元状态。一个单元传递给下一个单元。这些状态可以确保可以在单元之间传输顺序信息。
图4为消噪后系统所处环境的请求负载量-所需CPU资源量图,呈线性分布,可以根据此模型将预测请求负载量转化为预测资源量。a为实际radis数据库的工作负载,b为模型拟合。
图5为scale-up和scale-out决策示例场景,当请求负载量从150%变为350%时,虚框内先scale-out,即增添两个容器,再对所有五个容器做scale-up操作,从50%提高为70%,最终满足变化后的请求负载量的资源需求。
图6为不同角度下展示的本发明相对于其他方法(No-scaling,peak-based,EFRA,PRESS)所显现的节约资源的优势,此实验背景为请求负载量不超过当前所有节点的最大资源总量,a、b、c分别表示分配资源图、超过实际需要的分配资源量图,超过实际需要的分配资源占实际需要资源的比率图。
图7为图6实验环境下,图a、b、c、d分别表示peak-based、EFRA、No-scaling、本发明分配资源后的延迟分布图。
图8为图6实验环境下,分配资源后的工作负载量图。
a为资源分配开销图,b为吞吐量图。
图9资源回收情况示意图。
a回收资源图,图中深色为本发明在线控制器重新增加分配的资源量,浅色为回收的资源量,b图表示的是回收的资源相对于不回收资源所节省的资源比例。
具体实施方式
为了解决现有技术问题,本发明提出了一个资源管理引擎,它可以最大限度地降低用于在线云服务的资源配置成本,同时保证尾部延迟SLO。本发明通过工作负载感知资源扩展方法降低了资源配置成本。与固定系统相比,本发明提高了非稳定周期工作负荷的预测精度,并支持组合scale-up和scale-out操作,以最大限度地降低启动成本。它还集成了基于反馈的QoS管理策略以避免可能的因为预测错误而导致打破SLO情况。
本发明被设计为在启用容器的系统中运行,其中每个服务实例作为容器运行。选择容器而不是虚拟机,因为它可以在不停止和重新启动容器的情况下启用资源调整操作,并且操作可以在几十毫秒内生效。本发明由三个组成部分组成如下:
请求负载量预测器,它学习历史请求负载量,并预测下一个时期的请求负载量。为了提高不稳定周期请求负载量的预测精度,使用SSA方法对历史数据进行预处理,然后训练LSTM(Long Short-Term Memory)网络进行预测。
资源重建器构建资源性能模型以估计支持预测请求负载量的所需资源。然后,考虑到scale-out和scale-up的操作成本,将资源缩放表示为数学规划问题。最后,推导出具有最小开销的最佳scale-up和scale-out组合策略。
在线控制器在运行时动态调整服务的已分配资源。当预测错误高到接近SLO违规时它被激活。同时通过资源回收算法来回收过度配置的资源以提高资源利用效率。控制器使用Linux的cgroups实现资源分配。
1.请求负载量预测器
请求负载量预处理器主要负责实现学习历史请求负载量,并预测下一个时期的工作
量。当历史请求负载量到达时,先对历史请求负载量进行预处理,再将处理后的数据输入到预测模型中训练并对下一个周期的请求负载量进行预测。具体步骤如下:
1)预处理:使用SSA方法预处理历史工作负荷数据,以过滤掉短期噪声。SSA[24]通常用于分析一维时间序列数据。它根据观测到的时间序列构造轨迹矩阵,并将其分解为一个分量之和,例如长期趋势信号,周期信号,噪声信号,以分析时间序列的结构。
2)预测模型:采用LSTM,一种先进的循环神经网络(Recurrent Neural Network,简称RNN),用于预测请求负载量。
当输入序列的长度非常大时,LSTM通过控制忘记门来避免梯度消失或梯度爆炸。更具体地说,LSTM的结构有h个LSTM单元,k个输出和两个状态:隐藏状态和单元状态。一个单元传递给下一个单元。这些状态可以确保可以在单元之间传输顺序信息。制定预测问题如下
1...ωk-1k)=LSTM(ωh-1h-2,...,ω0) (1)
其中ωt是时间t的请求负载量,h和k分别是历史序列长度和预测长度。从方程(1),预测问题总结如下:给定一系列具有h长度的历史工作负载,预测后续h工作负载。
使用RMSE(均方根误差)来测量生成的标签和实际标签的损失。RMSE定义如下
Figure BDA0002398937220000061
其中i是训练中每个时期的批量大小LSTM,并且pt是预测值,yt是评估值。在的实现,最终得到一个LSTM模型,数量参数步骤设置为1,隐藏层数为1500,神经元数量为4.
2.资源重建器
资源重建器构建资源性能模型以估计支持预测请求负载量的所需资源。然后,考虑到scale-out和scale-up的操作成本,将资源缩放表示为数学规划问题。最后,推导出具有最小开销的最佳scale-up和scale-out组合策略。具体步骤如下:
1)获取所需的资源:构建负载-资源模型来指导资源分配。遵循该模型,在请求负载量预测期给定预测请求负载量的情况下,可以很容易地获得所需资源的数量。当CPU是处理工作的瓶颈资源时,分配更多的CPU资源将有助于提高服务吞吐量。如果在瓶颈情况下约束分配给每个容器的CPU资源,发现远程字典服务redis(Remote Dictionary Server)的CPU利用率请求请求负载量上线性增加。
1.1)基于公式R=α·y+β,其中R表示所需资源,y表示请求负载量,α和β是线性模型的系数。
1.2)为了提高模型拟合的精度,使用最近邻方法检测并去除异常值:对于每个数据点,计算到第k个最近邻居的距离。具有最大距离的点被识别为异常值。在去除异常值之后,推导出线性模型,该模型导致到样本点的最小欧氏距离,因此取得α和β的值。
2)将请求负载量预测器所获得的预测请求负载量代入到步骤1中的模型得到预测所需资源R。
3)Scale-up和scale-out决策:由于容器支持scale-up和scale-out操作,因此需要根据所需资源(Resource,记为R),现有容器的当前配置和每台物理机器中的可用资源来确定它们的组合。
3.1)如果所需资源量小于所有容器最大资源量(即容器数量乘以单个容器最大资源量),则进行scale-up操作,即每个容器所分配的资源量等于所需资源量除以容器数量。
3.2)如果所需资源量大于所有容器最大资源量,则进行scale-out操作,即增大容器数量至满足所需资源量小于当前容器最大资源量,每个容器所分配的资源量为所需资源量除以容器数量。
3.在线控制器
在线控制器在运行时动态调整服务的已分配资源。当预测错误高到接近SLO违规时它被激活。还设计了资源回收算法来回收过度配置的资源以提高资源利用效率。控制器使用Linux的cgroups实现资源分配。具体算法如下:
1)每隔两秒监视一次当前延迟latency。
2)基于公式slack=(SLO_Target-latency)/SLO_Target,其中SLO_Target为预先设定的SLO限制值,算出slack值
3)如果slack<0,即当前已打破SLO,则提高当前分配资源10%。
4)如果0<slack<0.05,即当前slack已经接近SLO_Target,则提高当前分配资源5%。
5)否则,即当前延迟与SLO_Target差距比较大,则考虑回收资源机制。
5.1)基于公式extraResource=curResource-preResource,其中curResource为当前资源分配量,preResource为请求负载量预测器得到的预测请求负载量通过资源重建器时所得到的预测所需资源。
5.2)如果extraResource>0,即当前分配资源超过预测所需资源,则减少当前分配资源5%。
以下结合图1及较佳实施例,对依据本发明提供的具体实施方式、结构、特征及其功效,详细说明如下:
1.资源分配器
1)周期性请求负载量和所需CPU资源量(计算资源单位为核心数)到达,历史数据分别为{(1000QPS,2核)、(1200QPS,2.2核)、(500QPS,1.5核)、(800QPS,1.8核)},所建立的负载-资源模型基于公式R=α·y+β,代入历史数据得到R=0.001y+1。
2)将请求负载量预测器预测出来的请求负载量(2500QPS)代入负载-资源模型中得到预测资源为3.5核(计算方法:3.5=0.001*2500+1)。
3)设定当前环境为3个节点,单个结点最大资源限制量为0.8核,当前所需资源量为1.5核,即三个节点每个节点资源分配量为0.5核。
4)因为预测资源量3.5核大于当前环境所有节点的最大资源总量2.4核(2.4=3(节点数量)*0.8核(单个结点最大资源量))。所以需要进行scale-out操作,扩充节点数量为5(5=3.5(需求资源量)/0.8(单个节点最大资源量)),再进行scale-up操作,每个节点分配的资源量为0.7(0.7=3.5(需求资源量)/5(当前结点数目))。
2.在线控制器
根据上述资源重制器算法得到的资源分配方案并实施后,采用在线控制器。算法主要步骤如下:
1)设定SLO Target为500us,当前实际资源需求为3.6核,因为实际资源需求3.6核>当前分配资源量3.5核,所以很有可能发生打破SLO。
2)每两秒一次监测实时尾延迟为550us,基于公式:
slack=(SLO_Target-latency)/SLO_Target计算slack值为(500-550)/500=-0.1,
因为-0.1<0,所以提高当前分配资源10%,即当前分配资源量为3.5*1.1=3.85核;
3)再经过两秒后,因为当前分配资源量为3.85核>3.5核,所以延迟应该会恢复正常。监测实时尾延迟为400us。
4)计算slack值为(500-400)/500=0.2,因为0.2>0.05,所以进行资源回收机制,基于公式extraResource=curResource-preResource,计算extraResource值为3.85-3.5=0.35核,所以减少当前超分配资源50%,即当前资源分配量为3.5+0.35*0.5=3.675核。重复步骤1和2实现了本发明的监控尾延迟动态调整资源分配的功能,在保证SLO的基础上,极大程度减少了超分资源的分配量。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种负载感知的云计算资源弹性分配系统,其特征是,包括:
请求负载量预测器,用于学习历史请求负载量,并预测下一个时期的请求负载量,使用奇异谱分解SSA(Singular Spectrum Analysis)方法对历史数据进行预处理,然后训练长短记忆期记忆网络LSTM(Long Short-Term Memory)网络进行预测;
资源重建器,用于构建资源性能模型以估计支持预测请求负载量的所需资源,然后,考虑到横向资源扩展scale-out和纵向资源扩展scale-up的操作成本,将资源缩放表示为数学规划问题,最后,推导出具有最小开销的最佳scale-up和scale-out组合策略;
在线控制器用于在运行时动态调整服务的已分配资源,当预测错误高到接近服务级别目标SLO违规时被激活,利用资源回收算法来回收过度配置的资源以提高资源利用效率;
其中,资源重建器中执行如下步骤:
1)获取所需的资源:构建负载-资源模型来指导资源分配,遵循该模型,在请求负载量预测期给定预测请求负载量的情况下,获得所需资源的数量,当CPU是处理工作的瓶颈资源时,分配更多的CPU资源将有助于提高服务吞吐量,具体步骤为:
1.1)基于公式R=α·y+β,其中R表示所需资源,y表示请求负载量,α和β是线性模型的系数;
1.2)为了提高模型拟合的精度,使用最近邻方法检测并去除异常值:对于每个数据点,计算到第k个最近邻居的距离,具有最大距离的点被识别为异常值,在去除异常值之后,推导出线性模型,该模型导致到样本点的最小欧氏距离,因此取得α和β的值;
2)将请求负载量预测器所获得的预测请求负载量代入到预测模型得到预测所需资源R;
3)Scale-up和scale-out决策:由于容器支持scale-up和scale-out操作,因此需要根据所需资源R,现有容器的当前配置和每台物理机器中的可用资源来确定它们的组合;
3.1)如果所需资源量小于所有容器最大资源量,则进行scale-up操作,即每个容器所分配的资源量等于所需资源量除以容器数量;
3.2)如果所需资源量大于所有容器最大资源量,则进行scale-out操作,即增大容器数量至满足所需资源量小于当前容器最大资源量,每个容器所分配的资源量为所需资源量除以容器数量;
在线控制器中执行如下步骤:
控制器使用Linux的cgroups实现资源分配,具体算法如下:
1)每隔两秒监视一次当前延迟latency;
2)基于公式slack=(SLO_Target-latency)/SLO_Target,其中SLO_Target为预先设定的SLO限制值,算出slack值;
3)如果slack<0,即当前已打破SLO,则提高当前分配资源10%;
4)如果0<slack<0.05,即当前slack已经接近SLO_Target,则提高当前分配资源5%;
5)否则,即当前延迟与SLO_Target差距比较大,则考虑回收资源机制;
5.1)基于公式extraResource=curResource-preResource,其中curResource为当前资源分配量,preResource为请求负载量预测器得到的预测请求负载量通过资源重建器时所得到的预测所需资源;
5.2)如果extraResource>0,即当前分配资源超过预测所需资源,则减少当前分配资源5%。
2.如权利要求1所述的负载感知的云计算资源弹性分配系统,其特征是,请求负载量预测器中,当历史请求负载量到达时,先对历史请求负载量进行预处理,再将处理后的数据输入到预测模型中训练并对下一个周期的请求负载量进行预测,具体步骤如下:
1)预处理:使用奇异谱分解SSA方法预处理历史工作负荷数据,以过滤掉短期噪声;
2)预测模型:采用LSTM模型用于预测请求负载量,当输入序列的长度非常大时,LSTM通过控制忘记门来避免梯度消失或梯度爆炸,LSTM的结构有h个LSTM单元,k个输出和两个状态:隐藏状态和单元状态,一个单元传递给下一个单元,这些状态确保在单元之间传输顺序信息,制定预测问题如下:
1...ωk-1k)=LSTM(ωh-1h-2,...,ω0) (1)
其中ωt是时间t的请求负载量,h和k分别是历史序列长度和预测长度,从方程(1),预测问题总结如下:给定一系列具有h长度的历史工作负载,预测后续h工作负载;
使用均方根误差RMSE来测量生成的标签和实际标签的损失,RMSE定义如下
Figure FDA0003201579760000021
其中i是训练中每个时期的批量大小LSTM,并且pt是预测值,yt是评估值。
3.一种负载感知的云计算资源弹性分配方法,其特征是,步骤如下:请求负载量预测,学习历史请求负载量,并预测下一个时期的请求负载量,使用奇异谱分解SSA方法对历史数据进行预处理,然后训练长短记忆期记忆网络LSTM模型进行预测;
资源重建,构建资源性能模型以估计支持预测请求负载量的所需资源,然后,考虑到横向资源扩展scale-out和纵向资源扩展scale-up的操作成本,将资源缩放表示为数学规划问题,最后,推导出具有最小开销的最佳scale-up和scale-out组合策略;
在线控制:在运行时动态调整服务的已分配资源,当预测错误高到接近服务级别目标SLO违规时被激活,利用资源回收算法来回收过度配置的资源以提高资源利用效率;
其中,资源重建具体步骤如下:
2)获取所需的资源:构建负载-资源模型来指导资源分配,遵循该模型,在请求负载量预测期给定预测请求负载量的情况下,获得所需资源的数量,当CPU是处理工作的瓶颈资源时,分配更多的CPU资源将有助于提高服务吞吐量,具体步骤为:
1.1)基于公式R=α·y+β,其中R表示所需资源,y表示请求负载量,α和β是线性模型的系数;
1.2)为了提高模型拟合的精度,使用最近邻方法检测并去除异常值:对于每个数据点,计算到第k个最近邻居的距离,具有最大距离的点被识别为异常值,在去除异常值之后,推导出线性模型,该模型导致到样本点的最小欧氏距离,因此取得α和β的值;
2)将请求负载量预测器所获得的预测请求负载量代入到预测模型得到预测所需资源R;
3)Scale-up和scale-out决策:由于容器支持scale-up和scale-out操作,因此需要根据所需资源R,现有容器的当前配置和每台物理机器中的可用资源来确定它们的组合;
3.1)如果所需资源量小于所有容器最大资源量,则进行scale-up操作,即每个容器所分配的资源量等于所需资源量除以容器数量;
3.2)如果所需资源量大于所有容器最大资源量,则进行scale-out操作,即增大容器数量至满足所需资源量小于当前容器最大资源量,每个容器所分配的资源量为所需资源量除以容器数量;
在线控制具体步骤如下:
控制器使用Linux的cgroups实现资源分配,具体算法如下:
1)每隔两秒监视一次当前延迟latency;
2)基于公式slack=(SLO_Target-latency)/SLO_Target,其中SLO_Target为预先设定的SLO限制值,算出slack值;
3)如果slack<0,即当前已打破SLO,则提高当前分配资源10%;
4)如果0<slack<0.05,即当前slack已经接近SLO_Target,则提高当前分配资源5%;
5)否则,即当前延迟与SLO_Target差距比较大,则考虑回收资源机制;
5.1)基于公式extraResource=curResource-preResource,其中curResource为当前资源分配量,preResource为请求负载量预测器得到的预测请求负载量通过资源重建器时所得到的预测所需资源;
5.2)如果extraResource>0,即当前分配资源超过预测所需资源,则减少当前分配资源5%。
4.如权利要求3所述的负载感知的云计算资源弹性分配方法,其特征是,请求负载量预测详细步骤如下:
1)预处理:使用SSA方法预处理历史工作负荷数据,以过滤掉短期噪声,SSA用于分析一维时间序列数据,它根据观测到的时间序列构造轨迹矩阵,并将其分解为一个分量之和;
2)预测模型:采用LSTM,用于预测请求负载量,当输入序列的长度非常大时,LSTM通过控制忘记门来避免梯度消失或梯度爆炸,更具体地说,LSTM的结构有h个LSTM单元,k个输出和两个状态:隐藏状态和单元状态,一个单元传递给下一个单元,这些状态确保在单元之间传输顺序信息,制定预测问题如下:
1...ωk-1k)=LSTM(ωh-1h-2,...,ω0) (1)
其中ωt是时间t的请求负载量,h和k分别是历史序列长度和预测长度,从方程(1),预测问题总结如下:给定一系列具有h长度的历史工作负载,预测后续h工作负载,使用均方根误差RMSE来测量生成的标签和实际标签的损失,RMSE定义如下
Figure FDA0003201579760000041
其中i是训练中每个时期的批量大小LSTM,并且pt是预测值,yt是评估值。
CN202010140563.6A 2020-03-03 2020-03-03 负载感知的云计算资源弹性分配系统及方法 Active CN111491006B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010140563.6A CN111491006B (zh) 2020-03-03 2020-03-03 负载感知的云计算资源弹性分配系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010140563.6A CN111491006B (zh) 2020-03-03 2020-03-03 负载感知的云计算资源弹性分配系统及方法

Publications (2)

Publication Number Publication Date
CN111491006A CN111491006A (zh) 2020-08-04
CN111491006B true CN111491006B (zh) 2021-11-02

Family

ID=71812464

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010140563.6A Active CN111491006B (zh) 2020-03-03 2020-03-03 负载感知的云计算资源弹性分配系统及方法

Country Status (1)

Country Link
CN (1) CN111491006B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112100024B (zh) * 2020-08-14 2022-06-17 北京浪潮数据技术有限公司 一种资源负载异常检测方法、装置及设备
CN112363826B (zh) * 2020-10-23 2023-03-14 国网山东省电力公司日照供电公司 一种项目资源综合管理系统、方法、终端及存储介质
US11762709B2 (en) * 2020-11-11 2023-09-19 International Business Machines Corporation Predictive auto-scaler for a hierarchical computing infrastructure
CN112416608B (zh) * 2021-01-22 2021-05-11 鹏城实验室 面向云平台性能评估的资源分配方法、装置及存储介质
CN112783729A (zh) * 2021-01-29 2021-05-11 北京三快在线科技有限公司 一种针对灰度发布的异常处理方法及异常处理装置
CN112905343B (zh) * 2021-02-09 2023-09-26 重庆大学 一种工业云环境下基于负载特性的资源调度系统
CN112860403B (zh) * 2021-02-22 2023-11-07 中国联合网络通信集团有限公司 集群负载资源调度方法、装置、设备、介质及产品
CN113283171A (zh) * 2021-05-27 2021-08-20 上海交通大学 工业平台资源优化分配装置及方法
CN113220466A (zh) * 2021-06-02 2021-08-06 神州数码系统集成服务有限公司 一种基于长短期记忆模型的云服务负载通用预测方法
CN113608875B (zh) * 2021-08-10 2023-09-12 天津大学 一种高吞吐云计算资源回收系统
US11868812B2 (en) 2021-08-12 2024-01-09 International Business Machines Corporation Predictive scaling of container orchestration platforms
CN113568759B (zh) * 2021-09-27 2022-02-22 睿至科技集团有限公司 一种基于云计算的大数据处理方法及其系统
CN114827142B (zh) * 2022-04-11 2023-02-28 浙江大学 一种确保容器化边缘服务请求实时性的调度方法
CN115314449B (zh) * 2022-07-20 2023-10-27 江苏金融租赁股份有限公司 一种微服务平台的剩余资源评估方法及设备
CN116467068B (zh) * 2023-03-14 2024-06-18 浙江大学 资源调度方法、设备及存储介质
CN116932233B (zh) * 2023-09-19 2023-12-08 金网络(北京)数字科技有限公司 一种智能合约的微服务架构
CN117033693B (zh) * 2023-10-08 2024-03-08 联通沃音乐文化有限公司 一种混合模式的云处理的方法及系统
CN117472589B (zh) * 2023-12-27 2024-03-12 山东合能科技有限责任公司 一种园区网络服务管理方法及系统
CN118152124A (zh) * 2024-03-15 2024-06-07 聚明数据(南京)有限公司 一种基于云计算的数据处理方法及系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130138798A1 (en) * 2011-11-29 2013-05-30 International Business Machines Corporation Predictive and dynamic resource provisioning with tenancy matching of health metrics in cloud systems
CN102904955B (zh) * 2012-10-16 2015-11-18 南京大学镇江高新技术研究院 云计算平台中Web应用的自适应伸缩控制系统及其方法
CN103473115B (zh) * 2013-09-06 2017-04-05 华为技术有限公司 虚拟机放置方法和装置
CN104123189B (zh) * 2014-06-30 2017-12-01 复旦大学 一种基于IaaS层应用感知的Web多层应用动态资源调整方法
CN106502799A (zh) * 2016-12-30 2017-03-15 南京大学 一种基于长短时记忆网络的主机负载预测方法
US10387298B2 (en) * 2017-04-04 2019-08-20 Hailo Technologies Ltd Artificial neural network incorporating emphasis and focus techniques
CN107291545B (zh) * 2017-08-07 2019-12-10 星环信息科技(上海)有限公司 计算集群中多用户的任务调度方法及设备
US11030069B2 (en) * 2017-09-08 2021-06-08 International Business Machines Corporation Multi-layer autoscaling for a scale-up cloud server
CN109936473B (zh) * 2017-12-19 2022-04-08 北京华耀科技有限公司 基于深度学习预测的分布计算系统及其运行方法
CN108170529A (zh) * 2017-12-26 2018-06-15 北京工业大学 一种基于长短期记忆网络的云数据中心负载预测方法
CN109522117A (zh) * 2018-10-25 2019-03-26 深圳市圆世科技有限责任公司 一种面向异构环境下的链上数据调度系统
CN109614198A (zh) * 2018-11-26 2019-04-12 东南大学 一种电价动态变化环境下的虚拟机整合调度算法

Also Published As

Publication number Publication date
CN111491006A (zh) 2020-08-04

Similar Documents

Publication Publication Date Title
CN111491006B (zh) 负载感知的云计算资源弹性分配系统及方法
Liu et al. A hierarchical framework of cloud resource allocation and power management using deep reinforcement learning
Bao et al. Deep learning-based job placement in distributed machine learning clusters
US20200257968A1 (en) Self-learning scheduler for application orchestration on shared compute cluster
Sayadnavard et al. A reliable energy-aware approach for dynamic virtual machine consolidation in cloud data centers
Rjoub et al. Deep smart scheduling: A deep learning approach for automated big data scheduling over the cloud
Chen et al. Deep learning research and development platform: Characterizing and scheduling with qos guarantees on gpu clusters
EP2755133B1 (en) Application execution controller and application execution method
CN116643844B (zh) 面向电力超算云资源自动扩展的智能化管理系统及方法
Zhang et al. Astraea: towards QoS-aware and resource-efficient multi-stage GPU services
Caglar et al. A performance interferenceaware virtual machine placement strategy for supporting soft realtime applications in the cloud
CN104598311A (zh) 一种面向Hadoop的实时作业公平调度的方法和装置
CN116185584A (zh) 一种基于深度强化学习的多租户数据库资源规划与调度方法
Wang et al. Communication contention aware scheduling of multiple deep learning training jobs
Wu et al. Intelligent fitting global real‐time task scheduling strategy for high‐performance multi‐core systems
Babu et al. Energy efficient scheduling algorithm for cloud computing systems based on prediction model
Chen et al. HarmonyBatch: Batching multi-SLO DNN Inference with Heterogeneous Serverless Functions
CN117687784A (zh) 一种基于机器学习的Docker容器智能动态调配方法及装置
CN116980316A (zh) 面向时延和资源利用率的微服务弹性伸缩调度方法和系统
CN114466014B (zh) 一种服务调度方法、装置、电子设备及存储介质
Song et al. ChainsFormer: A chain latency-aware resource provisioning approach for microservices cluster
Yang et al. Elax: Provisioning resource elastically for containerized online cloud services
Shang et al. spotDNN: Provisioning Spot Instances for Predictable Distributed DNN Training in the Cloud
KR20230089509A (ko) Bi-LSTM 기반 웹 애플리케이션 워크로드 예측 방법 및 장치
Wang Improved Cat Swarm Optimization Algorithm for Load Balancing in the Cloud Computing Environment

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