云环境下基于预测的能耗优化算法
2017-05-12李亮亮
李亮亮
(四川大学计算机学院,成都 610065)
云环境下基于预测的能耗优化算法
李亮亮
(四川大学计算机学院,成都 610065)
近年来云计算技术发展迅猛,许多企业都将业务迁移到云端,如何提高云资源利用效率降低能耗是一个很多人在研究的问题。针对私有云环境中部署的Web服务提出一种基于负载预测的能耗优化算法,通过对系统负载进行预测并合理分配调度系统资源,有效提高资源利用效率并降低能耗,最后通过仿真实验验证该算法的可行性和有效性。
云计算;Web 服务;资源利用率;能耗
0 引言
如今很多企业都将自己的业务或部分或全部迁移到了“云”中,因为云计算为用户提供着近乎无限的计算资源。云计算最初提出时希望计算资源能够像今天我们使用水、电一样,用多少给多少钱,即以一种按需服务的方式给用户使用。云计算主要使用虚拟化技术为用户提供服务,它具有高可靠性、易于扩展、价格低廉等特点。纵观现在的云计算市场,大概可以划分为3类,首先是公有云,用户向公有云服务提供商支付相应的费用,从而得到相应资源的使用权利,费用使用完毕则用户需要续费或者停止使用相应服务,例如国外有Amazon、Google、IBM等公有云服务提供商,国内则以阿里云、腾讯、华为等提供的云服务为代表;其次是企业自建的私有云,一般私有云规模都相对较小,提供的计算能力相对公有云要小很多,但因为私有云在企业或者机构内部,所以安全性有足够的保证;第三种则是前面两种的混合方式,即混合云,它结合了私有云安全性高和公有云计算能力强的特点,企业可以把对安全性要求高的数据放在私有云中,而需要大量计算的任务则放在公有云中去执行,这也是目前对于企业使用云计算一个很好的方式。
本文关注的是企业将Web应用部署到私有云中的情形,通过采用合适的算法来优化私有云的能耗,因为能源消耗在云的成本开销中占有很大的比例,不加以合理利用很多都是白白浪费掉了,这不仅带来了一定经济上的损失,同时也与现在提倡的绿色环保的概念相违背,所以对于能耗的优化具有很重大的意义。现有研究很少针对私有云中部署的Web应用,本文将提出一种能耗优化的调度算法针对该场景。
1 系统结构
1.1 问题描述
本文从一个合作的电商网站的真实数据分析着手。该电商网站将业务程序部署在5台服务器上,通过后台监控程序每10分钟获取一次系统状态,共收集了一周的监控数据,其中本文主要关注的是系统CPU负荷情况,通过分析监控数据,发现CPU负载呈现出周期性的波动,如下图1所示,为了更清晰地呈现负荷的变动,图中截取了一周内连续两天的CPU负载情况,从图1中可以看出,CPU负载以天为周期呈现出规律的波动,一天内出现两个大的波峰,分别在中午12点左右以及晚上9点左右,这也正好印证一般我们网上购物的规律,即一天中午和晚上的空闲时间。但是从图中看出系统整体的CPU利用率不高,最高也没超过60%,并且大部分时间内利用率都在30%以下,这浪费掉了很多系统资源以及电能,所以具有很大的优化空间。
图1 系统CPU负载
本文将Web应用放入云环境中,通过提出的调度算法对系统进行优化,从而提高系统整体的资源利用效率。
1.2 系统框架
出于对数据安全和隐私的考虑,本文考虑私有云场景。企业需要将Web服务器部署在私有云中,然后由调度器预测不同时刻系统中的负载情况并提前做出响应,因为当Web系统出现过载再采取行动会严重影响用户的体验。系统整体结构如图2所示,企业中有物理服务器(PM)n个,全部进行虚拟化搭建私有云平台,然后部署n个Web服务器到n台虚拟机上对外提供服务,私有云环境中一个很重要的部件是broker,它由几个模块组成,分别是负载预测器和调度器。负载预测器会使用下述的算法根据历史的数据对未来一个时间段内的系统整体负载做预测,然后反馈给调度器,调度器则根据系统整体的负载对这些Web服务器进行调度,当系统负载较低时它将用户请求迁移到少数几台Web服务器上,同时将这些Web服务器调度到集中的几台PM上,同时让其他空闲的PM关闭或者是将它们置于低功耗状态下,这样降低系统的整体能耗。详细的调度算法和流程见下一小节。
2 调度算法
2.1 预测算法
Web系统的负载变化主要是由于不同时刻用户的请求量不同导致的。当某时间段内有大量的用户访问请求到达系统,则系统的负荷会增加导致系统资源利用率会提升,反之当用户访问量比较小时系统负荷就会变小,如图1所示,由于在凌晨时段基本没有用户访问因此系统负荷维持在很低的水平,所以CPU的利用率很低。为了充分利用系统提供的资源,保证系统资源处于一个较高的利用水平,broker中的负载预测模块首先根据历史数据对未来一个时间段内的用户请求量进行预测,然后调度器根据预测结果对系统进行资源分配以及调度。
图2 系统结构图
在确定其中的参数时,我们使用“三和法”来估计参数,需要将建模的数据分为3组,即将观测的历史数据长度表示为3L,则上述模型中的参数可分别表示为n。 上式中pi(t)和分别代表t时刻监测到的实际用户请求数量和预测的t,时刻的用户请求量,实际的监测数据通过历史数据获取,这样就可以利用历史数据来预测未来某时刻的用户请求数量。
2.2 调度流程
负载预测器预测了未来一段时间内的用户请求数量,调度器将该结果与现在的系统负载作对比,然后根据对比结果决定是为Web服务器分配新的资源或者是回收部分资源并将服务器置于低功耗节能状态。调度算法伪代码如下所示:
算法1 基于预测的能耗优化算法 predict based energy consumption optimization(PBEO)
上述算法主要过程分为两步,根据预测和实际的情况系统采取不同的措施,如2~6行所示,当用户量突然增长很多时,调度器提前为Web服务分配新的资源,在资源利用率比较低的PM上分配新的vm;相反当用户量在短时间内下降比较多时,调度器会将资源利用率低的PM上的vm迁移到其他PM上,使vm集中到少量的PM上,从而使空闲的PM处于低能耗状态下或者是将其关闭,这样可以提升系统整体的能效。
图3 CPU平均利用率
图4 系统一天整体功耗
3 实验结果及分析
由于条件受限无法在真实的云环境中做实验,所以本文实验采用的是模拟实验,使用云计算实验平台Cloudsim进行仿真,实验环境为Intel Core i7处理器,8G内存,Windows 8的PC。
使用Cloudsim生成了一个小型数据中心,然后使用前文所述的真实电商数据模拟用户请求数,分别对比在使用本文算法和不使用本文算法的情况下,系统整体的CPU利用率和系统整体能量 (主要是电能)消耗。
如图3所示,使用本文提出的算法之后,系统整体的CPU利用率比没有使用提高了不少,并且当系统中PM数量从4增加到8时,利用率逐渐降低,因为系统提供的资源过剩之后导致很多资源处于空闲状态,从而降低了系统整体资源利用率。图4也反映出,当PM增多之后,系统功耗也逐渐变大,使用PBEO算法之后,系统整体能耗降低了不少。
4 结语
本文提出了一种在云环境下针对Web服务进行能耗优化的算法,该算法通过对系统负载作出预测,然后调度器对系统进行调度优化,当系统负载突然增加时,提前分配新的资源给Web服务器,避免系统过载使Web服务受影响;当系统负荷很低时,则将负载集中到少数服务器上以提高系统整体利用率并降低能耗。模拟实验验证了该算法的有效性。
参考文献:
[1]Buyya R,Yeo C S,Venugopal S,et al.Cloud Computing and Emerging IT Platforms:Vision,Hype,and Reality for Delivering Computing as the 5th Utility[J].Future Generation Computer Systems,2009,25(6):599-616.
[2]Le T A.Workload Prediction for Resource Management in Data Centers[J],2016.
[3]Lucas-Simarro J L,Moreno-Vozmediano R,Montero R S,et al.Scheduling Strategies for Optimal Service Deployment Across Multiple Clouds[J].Future Generation Computer Systems,2013,29(6):1431-1441.
[4]Calheiros R N,Ranjan R,Beloglazov A,et al.CloudSim:a Toolkit for Modeling and Simulation of Cloud Computing Environments and Evaluation of Resource Provisioning Algorithms[J].Software:Practice and Experience,2011,41(1):23-50.
Energy Optimization Algorithm Based on Predictive in Cloud Environment
LI Liang-liang
(College of Computer Science,Sichuan University,Chengdu 610065)
With the rapid development of cloud computing technology in recent years,many companies move their business to the cloud,and how to improve the efficiency of cloud resources then reduce energy consumption is a problem which attracts a lot of researchers.Aiming at the Web service deployed in the private cloud environment,puts forward an energy consumption optimization algorithm based on load forecasting.By forecasting the system load and allocating the dispatching system resources reasonably,the resource utilization efficiency and energy consumption are improved effectively.Finally,the feasibility and validity of the algorithm are verified by simulation experiments.
Cloud Computing;Web Services;Resource Utilization;Energy Consumption
1007-1423(2017)09-0047-04
10.3969/j.issn.1007-1423.2017.09.012
李亮亮(1991-),男,湖北宜昌人,硕士,研究方向为云计算
2017-02-20
2017-03-10