拒绝“一视同仁”――Web请求分类机制
目前已有多种支持Web QoS技术的请求分类机制,这些机制大体上可以分为基于客户类别的分类和基于目标类别的分类。
1.基于客户的分类
这类方法是基于客户所特有的某些属性和特征对HTTP请求进行分类。
● 基于客户端IP地址的分类 客户端的IP地址可以用来辨别不同的客户。这种方法最容易实现。缺点是客户端的IP地址会被代理服务器或防火墙所屏蔽,因此,其应用受到一定的限制。
● 基于HTTP cookie的分类 HTTP cookie是Web服务器返回给客户用来收集客户信息的数据块,也是一种具有惟一性的标识符,它可以嵌入HTTP请求内,以表明客户所属的类别。例如,通常对特定商品或服务的网上订购就是作为持久的cookie来实现的。另外,cookie也可以用来识别一个已经建立起来的会话(Session),从而实现基于会话的请求分类。
● 基于浏览器plug-ins的分类 浏览器plug-ins(插件程序,用于扩充Web浏览器的功能)也可以在每个HTTP的请求体中嵌入特定的客户标识符。这样的插件程序允许已付费购买高级服务的客户下载。
使用基于客户的分类方法可以设置优先的客户组,并向其提供较其他客户更好的Web QoS。
2.基于目标的分类
这类方法是基于请求的目标所特有的一些属性和特征来对HTTP请求进行分类。
● 基于请求URL的分类 URL请求类型或文件名路径可以用来区分不同请求的相对重要程度,因此,可以作为一种请求分类的依据。
● 基于目标IP地址或端口号的分类 当多个Web站点放置于同一Web服务器节点时,服务器可以利用请求的目的IP地址或端口号来进行请求的分类。
基于目标的分类方法可以用来实现为重要的请求(如信用卡支付请求)或者付费更多的虚拟站点提供更好的Web QoS保证,也可以用来控制资源紧要型请求(如动态文件的请求)所消耗的资源。
一般情况下,上述两类分类机制对于请求分类而言通常是足够的,当然也可以使用基于客户和基于目标的特定属性的组合来进行请求分类。
改进应用软件――提供Web QoS支持
通过改进Web服务器应用软件来提供Web QoS支持是一种比较常见的Web QoS控制技术,目前许多相关的研究工作正在进行。
Web服务器中的优先化调度已被证明可以有效地改善高优先级请求的延迟性能,同时对低优先级请求的影响却相当小。美国威斯康星-麦迪逊大学的Almeida等人实现了在用户级和内核级分别通过基于优先级的请求调度来提供区分的Web QoS。其中,用户级方法是对Apache Web服务器软件进行修改,增加一个调度器进程,由它来决定对请求进行服务的顺序,并且此调度器进程限制了每类优先级进程的最大并发数目。内核级方法需要对Apache服务器软件和Linux内核同时进行修改,增加两个系统调用,以实现请求优先级到进程优先级的映射机制和记录各请求所对应的活动进程的优先级别。
美国波士顿大学的Crovella等人研究了Web服务器的连接调度问题,针对处理静态文件的Web服务器提出了一种优先处理短连接的策略――最短连接优先(Shortest Connection First)。在此基础上,美国卡内基-梅隆大学的Harchol-Balter等人对“最短剩余处理时间”(Shortest Remaining Processing Time,SRPT)调度策略进行了详尽的分析,并且在Web服务器上进行了实现,证明了SRPT对于最小化平均响应时间而言是最优的连接调度策略。
当Web服务器不能为所有的客户请求提供满意的服务时,选择性的资源分配可以实现为相对重要的请求提供QoS保证,因而这是一项很有前景的技术。当今的Web服务器不允许对服务器资源进行选择性分配,所以,当服务器繁忙时,检索普通页面的请求通常会淹没检索更重要页面的请求。为此,美国加州大学戴维斯分校的Pendey等人提出了一个Web服务器的QoS模型,该模型允许一个Web站点对HTTP服务器如何响应外部的请求进行定制,其方法是为不同的(或不同组的)页面请求设置不同的优先级,并相应地分配服务器资源。该模型支持对服务器资源的预订,预订量可以是全部服务器系统资源的一个固定比例,或者是一个速率/带宽的保证。美国密歇根大学的Li和Jamin提出了一种为Web客户按比例分配网络带宽的服务器模型。该模型使用基于测量的方法为系统中不同的服务类提供带宽估计值。当某个服务类的带宽估计值低于其目标值时,则对过度分配带宽的服务类进行节流,适当地延迟处理这些服务类的请求,从而实现在各请求服务类之间按比例分配网络带宽。美国南加州大学的Eggert和Heidemann提出了三种简单的服务器端的应用层机制,提供两类不同级别(常规优先级和低优先级)的Web服务,包括限制进程池的大小、区分进程的优先级和限制传输速率。这些机制可以获得明显的性能改进且容易实现。
一般在过载情况下,有效的接纳控制机制能保证丢弃速率和任务的延迟界线。HP实验室的Cherkasova和Phaal提出了基于用户的会话(session),而非每个请求的接纳控制机制。一个会话是指某一用户在一个预先规定的时间段内发出的一系列请求。由于目前许多Web服务本质上都是事务性的,包含许多申请Web服务的请求,因此,基于会话的接纳控制具有重要意义。例如,对于一次银行的交易结算,用户需要登录银行的主页、注册、检查账户余额、付账、最终退出登录。在过载的情况下,基于会话的接纳控制方案允许现有的用户会话继续进行,而新到的会话或者被重定向给其他的Web站点,或者被拒绝服务。
Web内容自适应(Adaptation)是一种比接纳控制更加灵活的机制,它可以在服务器过载的情况下自适应地提供连续的内容降级服务而不是简单地拒绝请求,从而能够更好地为用户提供Web QoS。美国密歇根大学的Abdelzaher等人提出了一种依赖于Web内容自适应机制来实现服务区分的QoS管理体系结构。其具体策略是在每个服务器上存储多份不同质量的Web内容,在服务器超载的情况下,可以使服务器有选择地为客户提供适宜质量的Web内容,即以体面的方式为低优先级客户提供平滑的服务降级,而保证高优先级的客户不会受到降级服务。这种QoS管理方法可以通过直接修改服务器软件来实现(也可以使用对服务器透明的中间件)。其缺点是需要同时维护多份Web内容,因此,需要较大的存储空间,费用较大。
使用控制理论的方法解决Web QoS控制问题是一个非常新颖的思路,并且已经引起研究者们的关注。美国维吉尼亚大学的Web QoS研究小组提出了基于控制理论方法在Web服务器中实现相对的延迟保证的技术。他们提出了一种基于反馈控制回路的自适应的Web服务器体系结构(如图1所示),利用动态的连接调度和进程重新分配机制来实现Web服务器的比例区分服务,从而为不同的服务类提供相对的延迟保证。他们使用了传统控制理论的方法来设计反馈控制回路,系统地设计和实现了一个自适应的Web服务器。所使用的控制理论方法有:通过离线系统辨识(System Identification)建立一个Web服务器模型,以进行性能控制;使用基于控制理论的性能规范(如稳定性、调节时间、稳态误差等)来描述Web服务器的性能需求;使用根轨迹(Root Locus)方法设计一个反馈控制器,以满足Web服务器的性能要求等。最终的性能实验结果显示,即使在工作负载剧烈变化的情况下,该自适应Web服务器仍然可以实现鲁棒的相对延迟保证,而且能够确保稳定性,可以有效和准确地实现所期望的相对延迟区分。
图1 自适应Web服务器的反馈控制体系结构
在附图中,服务器进程是该系统的控制对象;{Wk|0≤k
值得指出的是,目前已经出现了一些利用上述某些Web QoS机制与策略的商用Web服务器产品,比较典型的有HP公司的“WebQoS”服务器软件和IBM公司的WebSphere软件平台等。
通过改进Web服务器应用软件来提供Web QoS支持是一种非常直观的Web QoS控制思路,而且通常也比较有效,因此目前这方面的研究和产品也比较多。但是由于这种方法需要对Web服务器软件进行一定程度的修改,所以,目前在实际应用中仍存在着通用性和可扩展性等方面的局限。