基于心跳机制和阈值的云弹性检测方法*
2018-07-16张晓峰李欣孙海春赵晓凡中国人民公安大学信息技术与网络安全学院
张晓峰 李欣 孙海春 赵晓凡 中国人民公安大学信息技术与网络安全学院
引言
云计算是一种商业模式。在该模式的定价机制中,最常用的付费方式是按需付费,其中弹性是按需付费的核心。弹性表现良好的云服务,既能保障用户租赁服务的最高性价比,又能保障云服务提供商的最低成本。
本文将衡量一个云的资源调配能力的指标定义为云弹性。具体思路为:将云弹性完全量化并客观打分,借助层次分析法,以得分高低对云弹性优劣进行衡量;利用心跳包技术以及阈值判断实现云弹性的客观检测;最后,开发相应的检测工具软件,并对其效果和性能进行了评估。
一、研究现状
目前对于云服务的评测缺乏全面系统的研究。雅虎公司开发的YSCB框架的主要指标为:scale-up测试静态可扩展性,speedup测试动态可扩展性。IBM设计研发了一种CloudBench。思博伦公司提出了PASS测试方法,测试系统的可扩展性。C.Binig提出的Enhanced TPC-W benchmark框架,通过测试服务器的性能指标吞吐率和响应时间来评估云可扩展性。
关于云服务评测有如下几方面问题:一是指标评价体系比较单一;二是在弹性评测中缺乏有效的方法对云平台的弹性能力进行量化。同时,已发布SLA中关于资源管理与调配能力的表述也不具有可比性(表1)。因此,需要对SLA中的云的资源调配能力进行定义及检测,为用户提供更多的参考。
?
二、弹性的定义及量化指标
(一)弹性定义
关于弹性的定义,NIST提出云计算提供的快速弹性通过缩减或者扩展资源来实现;IBM 认为云计算系统资源的扩展或者缩减过程能够自动实现; OCDA(Open Data Center Alliance)将用户负载的增加或者释放云计算系统资源的能力即为弹性。归纳弹性定义现状,得出云平台的弹性应该具备以下几个关键点:(1)实时动态性;(2)迅速;(3)自动化。综上给出弹性定义。
定义1 (云弹性E)云弹性是衡量一个云的资源调配能力的指标,记为E,表示为:
其中,Ec、 En、 ES分别表示计算、网络以及存储资源的弹性;w1、 w2、 w3分别代表计算、网络以及存储资源的权重,且满足w1+ w2+ w3=1。
(二)弹性评估指标
本小节基于剖析弹性评估要素及其关联关系的思路,借助层次分析法理论,实现云平台弹性的量化评估。
1. 计算资源的量化
根据SLA的研究现状,一般会指定计算资源的扩展范围以及扩展极限,根据文献[9],扩展速度需要被考虑。计算资源弹性定义如下。
定义2(云平台计算资源弹性Ec) 云平台计算资源弹性记为Ec,表示为:
其中,vec代 表弹性扩展的速度,LC代表扩展的能力极限。w4、 w5为 权重。且满足w4+ w5=1。
定义3(云平台计算资源扩展速度vec)云平台计算资源扩展速度记为vec,表示为:
其中,△CC为 CPU利用率的改变量,tC为实际间隔时间,设置单位为秒。vei为单次测试中的扩展速度,多次测量求平均值,表示为:
其中,n为扩展次数。
Lc是扩展能力极限,具体得分见表2:
L 5 0%c 5 0% L 1 0 0%c L 1 0 0%c
2. 存储资源的量化
定义4(云平台存储资源弹性Es) 云平台计算资源弹性记为Es,表示为:
其中,ms代 表存储资源的扩展方式,Ls为扩展能力极限,w6、 w7为 权重,且满足w6+ w7=1。量化打分如表3与表4所示。
?
?
3. 网络资源的量化
网络资源主要包括带宽资源,由于带宽资源的扩展速度非常快,考虑扩展方式与扩展极限,网络资源弹性定义如下。
定义5(云平台网络资源弹性En) 云平台网络资源弹性记为En,表示为:
其中,mn代表网络资源的扩展方式,有自动扩展与手工申请扩展两种,Ln为扩展能力极限,具体分值同上表3与表4,w8、 w9为 权重,且满足w8+ w9=1。
三、基于心跳机制和阈值的弹性检测方法
本文提出了基于心跳机制获取CPU利用率的方法,并根据设定的阈值判断弹性调度开始与结束的时间,得到扩展速度,实现弹性的检测。
(一)检测方法的总体框架
本文利用第三方对云平台的弹性进行测试,通过客户端通信方式实现远程访问云平台,并利用发送心跳包的机制来间接测量弹性调度的时间。实现的框架图如下图1所示:
本方法的基本功能如下:
(1)利用心跳机制在第三方与云服务提供商之间实现通信;(2)施加负载,触发弹性资源调度。(3)返回得到CPU利用率以及系统时间。被测系统将当前时刻的CPU利用率返回给第三检测方。
(二)检测方法的实现
(1)心跳机制的实现:本方法中使用Socket实现TCP程序开发。测试中,由客户端向服务器端发送心跳包,被测方接收到心跳包后,将当前的CPU利用率以及系统时间返回给检测方,并在客户端显示。
(2)负载的实现:典型的负载类型主要包括以下几种:稳定型、渐变型以及激增型负载,利用Loadrunner等负载生成工具可以得到上述三种负载。
(3)数据处理:利用心跳包中数据,再根据2.2中的方法得到最终定量化结果。
四、实验仿真与分析
(一)实验环境
实验硬件环境:Intel(R) Core(TM) i5-4200U CPU@ 1.60GHz,3.2GHz 4GB内存。
软件环境:Eclipse编译工具,java语言。
云服务提供商利用服务器搭建的基于openstack的云架构,操作系统为centOS 7.2.1511,通过IP端口可以实现本机(即第三检测方)与云(即模拟云服务提供商)的连接与访问。
(二)实验过程设置与结果分析
(1)权重值的设置采取层次分析法确定权重值w1、w2、…、w9。根据三种资源需求的调研,设置w1=0.5,w2=0.2,w3=0.3,利用层次分析法确定w4、…、w9,w4=0.83,w5=0.17,w6=0.83,w7=0.13,w8=0.83,w9=0.17,三种典型负载权重各占1/3。
(2)设置△CC。CPU利用率的改变量设置为5%比较合理。tc的单位设置为秒。扩展速度相应得分见表5:
v 5ec0.1 7 v 5ec0.0 8 3 v 0.1 7ecv 0.0 8 3 e c
若CPU利用率降低5%所用的时间低于或者1分钟,则扩展速度为vec≥5,若所用时间超过1分钟但是小于30分钟,则扩展速度0.17≤vec<5 ,若所用时间超过30分钟但是小于1小时,则扩展速度0.083≤vec<0.17 ,若时间达到1小时以上,则扩展速度vec<0.083。
(3)弹性扩展的量纲及粒度。弹性测试前必须要确定弹性扩展的量纲。资源调度的粒度本文中规定资源量纲为虚拟机,粒度为一台虚拟机配置双核CPU。
(4)弹性调度阈值的设置。很多云服务商将80%定为弹性调度的CPU利用率阈值上限。弹性调度的开始时间为通过加压使得CPU利用率达到80%的最小时间,观察CPU的利用率是否结束弹性调度的时间为使得CPU利用率降到80%的最小时间,两者相减即为一次弹性调度时间。计算得到CPU利用率降低5%所用的时间,两者相比记为一次弹性扩展的速度。
当CPU的利用率低于30%时,认为开始进行弹性的缩减调度,则计算方法同理,得到CPU利用率增加5%所用的时间,两者的比值参照表5进行。
(5)实验参数设置:开始实验前,需要先输入IP地址及端口,输入心跳包发送次数为20次,设置心跳包的发送时间间隔为5000ms。
(6)负载场景设置。
实验一:加入稳定型负载,整体利用率较高。
从CPU利用率达到80%开始,每次心跳包间隔的时间为10s、5s,CPU利用率分别降低了6%、23%,如表6所示:
C C TC
计算两次的平均扩展速度,得到ve1= 0.60,ve2=4.58,求取平均值,vec=2.59,根据表8得分为0.7。
实验二:施加激增型负载时,CPU利用率迅速上升,超过80%,如图4所示。
从CPU利用率达到80%开始,每次心跳包间隔的时间为17s、5s、7s、11s、9s、10s,CPU利用率分别降低了2%、9%、8%、-2%、37%、,由于CPU利用率降低37%为异常值,观测CPU利用率从82%降低至75%所用时间为19s,CPU利用率的降低量为7%,CPU利用率增长2%为异常值,可用数据如表7所示:
C C TC
计算四次的平均扩展速度,得到ve1= 0.12,ve2=1.80,ve3= 1.14,ve4= 0.37求取平均值,vec=0.86,根据表5得分为0.7。
实验三:施加渐变型负载时,缓慢达到CPU利用率的阈值上限,如图5所示。
从CPU利用率达到80%开始,每次心跳包间隔的时间为10s、10s、8s,CPU利用率分别降低了4%、-2%、28%,将第二次与第三次的结果合并,得到CPU利用率降低26%用时18s,可用数据如表8所示:
C C TC
计算两次的平均扩展速度,得到ve1= 0.40,ve2=1.44,求取平均值,vec=0.92。根据表5得分为0.7。
由用户根据层次分析法得到三种负载下权重,计算得到的最终值,扩展速度的最终得分为0.7。
(三)实验效率检验
进行20次测试,设置每次心跳包发送间隔为5000ms,发送心跳包此时为20次(返回得到11次),每次测试中增加负载,检验实验运行的总时间,如下表9所示:
由表9分析可得,该算法的耗时随着数据规模的增长而增长,但即使很大的负载对于时间的影响较小,在可接受范围内,拟合效果图如图5所示。
综上所述,该算法能够实现云弹性的可靠检测,在检测耗时上可达到正常的要求。
五、结束语
本文提出了一种云平台弹性检测方法,并以第三检测方的角度提出了一种全新的,基于心跳机制和阈值的云平台弹性扩展速度的检测算法,经实验验证该算法具有良好的实时性。但另一方面,该方法的缺陷在于网络、存储资源的弹性检测方法不够完善。因此,下一步的研究重点是完善弹性检测方法。