论文部分内容阅读
对于部署在虚拟服务器集群上的多层云端应用系统而言,可以通过调整运行时架构以适应需求和上下文环境的变化,并保证其在动态负载下的性能.然而,由于缺乏通用的方法,如何从问题空间上的需求自适应地映射到解空间上的架构就成为了一个关键的问题.为解决这个问题,目前存在3种驱动方法:需求驱动模型、架构驱动模型和综合需求和架构模型的驱动方法.然而,这些方法的性能是有限的,并且忽视了时间变化规律,对横切系统多个层次的需求演化支持也不足.文中提出了一个基于预测控制的自适应方法(SAPC),它采用综合需求和架构的模型来驱动系统的自适应.该方法根据监控获取的运行时状态信息日志得到服务组件QoS值,学习基于小波变换的模型以准确预测服务组件的QoS,并通过预测控制诱导需求进化或实现运行时架构的模型转换来达到系统的自适应.更进一步,其根据当前的服务组件的QoS以及目标QoS做出优化决策.在控制操作部分中,判别当前情况下是做框架调整还是需求调整.如果存在可行的运行时模型,则通过预测控制产生操作向量,继而自动生成面向方面的脚本;该脚本被执行后会重构运行时模型并生成相应实例,该实例被传递给并行计算架构(比如MapReduce、Yarn或Spark等)来执行.否则,运用训练好的模型标识出进化点,然后将进化点与初始的需求混合起来以诱导需求进化.为验证上述方法,文中以一个名为CloudCRM在线SaaS平台为基准进行了大规模的实验,该平台基于RGPS元模型框架,通过对开源软件SuperCRM进行服务化改造来获得,其支持多租户.为观察平台在不同模型驱动方法的性能表现,文中对于该平台进行了剪裁,构造了4种由不同模型驱动的系统(包括Static、Req、Arch与SAPC),实验结果验证了文中方法的有效性.其中,在用户数为20时文中方法相对于其他3种方法在响应时间上分别降低54%,26%与21%,在吞吐率上提高313%,288%与12%,在可靠性上提高0.40%,0.26%与0.42%;在用户数为200时文中方法相对于其他3种方法在响应时间上分别降低99.5%,99.2%与20.7%,在吞吐率上提高320%,298%与10%,在可靠性上提高500%,495%与1.5%.进而文中方法使用小波变换分析相较于傅里叶变换在响应时间上降低7.2%,在吞吐率上提高2.4%,在可靠性上提高0.08%.在参数对于系统的影响方面,随着目标集合的大小与插件扩展点的数目的增长,SAPC方法都符合响应时间和吞吐量增加而可靠性下降的现象.