论文部分内容阅读
多层架构的Web应用已成为当前主流的网络应用,它可以应用于多种形式,如电子银行、网上购物、社交网络等等,性能是系统运行时和时间(相应时间、吞吐率)相关的一个属性,包括响应时间、吞吐率、资源利用率,性能需求是通过服务水平协议来定义的。Web应用性能的保障是至关重要的,性能问题可以导致客户、收益损失。然而现有的性能保障技术虽然保证了服务的可达性,但对性能支持不够,随着web应用的发展,对性能保障的技术提出了新的要求,就是按需供给的需求,它包括两个方面,保障性能需求和提高资源利用率。传统的基于经验和基于测试的方法需要人工参与,建模难度大,且模型适应性弱。现有基于监测的方法,模型粒度粗,也难以实现全局资源供给最优。
为了解决这些问题,我们提出了动态建模的方法,建模思路是,首先监测应用执行状态,然后利用分析日志提取性能模型,这种方法的优点是性能模型可以随着日志文件的更新而更新,从而可以应对系统可能存在的变换(软件的更新升级,平台的迁移)。动态建模里,我们主要对三个方面进行建模——用户行为、执行图、资源需求。整个过程中,我们重点解决了两个问题,首先,由于Web应用的多层架构关系,一个请求会由分布在不同层上的组件协作完成,但是整个流程被网络分割难以获得完整的执行序列,我们采用通过ID传播的方式来建立不同层次上组件的关联;其次,对于日志文件量非常大的问题,我们提出了采用分块处理的方式,先将大数据分为若干小数据块,最后合并小数据块的结果。
基于上述的设计,我们实现了一个动态性能建模工具。该工具首先在Web应用中插入必要的探针收集系统运行时状态,并输出为日志。然后通过周期性的对这些日志进行分析,从大量数据中提取出性能模型,使其与实际用户使用情况相符。最后,本文以TPC-W基准测试为例,验证了本系统的有效性。