中间件共享是云计算模式中一种重要的资源共享方式.但是,这种方式容易导致宿主在同一中间件服务器上的多个租户间产生性能干扰.因此,需要为租户提供性能隔离的服务实例.在线度量租户对系统资源的使用情况是实现性能隔离的前提条件,但是,在共享中间件服务器中直接度量CPU资源需要注入探针,将引起性能开销,并依赖于操作系统的支持.最近,一些工作利用回归分析进行资源使用情况的间接评估,但仍难以对动态Web系统的时变资源状态进行有效评估.文中针对普遍使用的Java中间件服务器,提出一种基于Kalman滤波的多租户Web应用CPU资源动态评估方法,并通过两个实验案例分析方法的评估效果、影响因素和面临的挑战.实验结果表明,通过适当的参数设置,该方法可动态适应持续变化的负载环境,并且与直接度量方法相比,具有可接受的评估误差.实验还表明该方法可用于检测侵占型租户,并避免共享中间件服务器CPU过载.
Middleware sharing is one of the important resource sharing approaches in cloud computing.However,a shared middleware server easily causes interference in performance between multiple hosted tenants.This interference affects infrastructure resources as well as applications and services that are hosted on shared resources but that need to be made available in multiple performance isolated instances.A key requirement in performance isolation of the shared Java middleware server is the knowledge of the resource consumption of the various tenants.However,direct measurement of CPU resource consumption requires instrumentation,incurs overhead,and assumes OS support.Recently,regression analysis has been applied to indirectly approximate resource consumption,but challenges still remain in estimating time-varying states in dynamic systems.In this paper,we propose a Kalman filter-based approach to offer a solution to the problem of dynamically estimating the CPU consumption of a multi-tenancy Web application in a shared Java middleware server,and we discuss the challenges involved in this approach.We investigate factors that impact the efficiency and accuracy of the approach in estimating time-varying states via two case studies.Experimental results show that,even under continuously changing workload conditions,estimation results are in agreement with the corresponding measurements with acceptable estimation errors,especially with appropriately tuned filter settings taken into account.Our experiments also demonstrate the utility of our approach in identifying the aggressive tenants and in avoiding shared middleware server CPU overloading.