论文部分内容阅读
云中聚集了大量的资源和服务,可以供租户选择和使用。租户可以利用云中已有的服务,根据服务的定制规则和自己的需求,将其组合成新的应用。这些应用通常被称作多服务应用,构成应用程序的每个服务都封装和实现了特定的业务功能,多个服务相互协作以完成租户所需要的业务逻辑,是云环境下的一种常见的应用。租户定制应用的同时,可以为自己的应用指定性能要求,尤其是对应用的响应时间的要求,这些性能需求以SLA协议的形式一起提交给系统。租户不需要关心自己的应用的部署和发布问题,系统会自动为其实现资源分配和服务部署,而租户只需要为其性能需求支付费用。多服务应用的资源分配有着相当大的难度和挑战。一方面,应用程序运行时,每个服务都有不同的工作负载,其对资源的需求各不相同,比单服务应用的资源分配要复杂得多。而且SLA协议约束的是整个应用的性能表现,并没有具体到单个服务上,因此只有所有服务的资源需求都能得到妥善考虑和处理,才能保证应用的整体性能不会出现问题。另一方面,运行中的应用程序,其性能都会受到在线用户请求的影响,用户请求量的振荡变化会给租户应用带来变化莫测的系统负载。系统负载的波动性使得资源分配面临着诸多挑战。效率低下的资源分配方法通常会导致两类主要问题,即资源分配过低和资源分配过高。由于负载的不确定性,分配给应用程序的资源量可能无法满足租户应用的性能需求,这被称之为资源过低分配问题。虽然分配更多的资源可以满足访问高峰期的负载处理,但这会造成资源浪费,即会产生资源过高分配的问题。运行时的资源分配策略可以有效地控制资源过低分配和过高分配的问题,据租户应用的负载变化自适应地进行资源分配,既能满足既定的性能需求,又能最大限度的提高资源利用率。本文主要针对云中多服务应用资源分配所出现的上述问题,从服务提供商的角度出发,以满足用户的SLA性能需求和最大化资源收益为主要目标,根据两种不同的SLA收益模型的定义分别提出了两种不同的资源分配机制。本文的主要工作包括:(1)提出了资源分配的环路反馈模型,作为实施资源分配的基本框架,该模型可以对运行中的服务进行实时的监控和跟踪,记录服务运行时的信息,一旦性能出现问题即可对其使用的资源进行调整和优化。(2)提出了一种基于排队理论的资源分配机制来实现一种简单的SLA收益模型。该收益模型下,用户请求的总体性能受到SLA的限制和约束,不能超出协定的阈值。我们设计的分配机制可以较好地适应这一收益模型,据服务总体的性能表现,动态地调节服务的资源使用情况,尽量用最少的资源满足SLA规定的性能指标。(3)提出了基于时间片轮转调度策略的资源分配机制来实现一种更加复杂的SLA收益模型。该收益模型是按每个用户请求的完成时间进行收费的,并且允许租户设定适合自己的单个请求的性能指标。基于时间片轮转调度策略的资源分配很好地实现这一收益模型,将服务器的处理时间以时间片为单位分配给各个用户,并且可以区分不同租户的不同的性能需求,将有限的服务器资源分配给各个租户下属的用户,使得他们的请求都能满足性能要求。