`

一个Web服务的性能瓶颈分析及对策

阅读更多

1、 引言 

QoS(Quality of Service,服务质量)控制技术作为下一代网络的核心技术之一,越来越成为计算机网络中研究与开发的热点问题。QoS控制的基本目标是为Internet应用提供性能保证和区分服务。随着Internet上Web应用的爆炸性增长和电子商务的飞速发展,如何为用户提供满意的服务性能保证成了一个新的研究课题,由于传统的Web服务器无法为Web应用提供服务区分和性能保证,因此,随着QoS技术研究和应用的深入,Web QoS作为QoS技术的一个新的重要研究领域应运而生。这种面向Web客户和Http请求的技术,是属于应用层的QoS,是企业对企业交易的一个重要条件,也是Web服务器中的一个必要元素,它度量的是用户在与Web站点进行交互时所感受到的服务性能,如:交易时间,交易的可靠性等等。在Web服务应用程序的实现中需要满足各种QoS属性,比如:可用性、可访问性、完整性、性能、可靠性、常规性和安全性等[1]。 

目前,Web QoS控制研究已经越来越受到国内外学界和业界的重视并取得了一定的成果。概括起来,实现Web QoS控制技术可以分为这样几大类:Web请求的分类机制、Web服务器软件的QoS控制机制、操作系统的Web QoS控制机制以及Web服务器集群的QoS控制机制。本文主要研究一个Web服务的性能瓶颈,并对其进行分析,提出相应的策略。 

2、 Http对Web QoS的影响及对策 

由于底层消息传递和传输协议的局限性,Web服务会遇到性能瓶颈。然而,对公众普遍接受的协议(例如 HTTP 和 SOAP)的依赖却使它们成了必须承担的永久的负担。因此,本文对其加以分析并得出相应的解决措施。 

2.1、 Http成为制约Web服务性能的一个瓶颈 

Http是一种尽力而为的传输服务,是一个无状态的数据转发机制,它不保证数据包会被传输到目的地,而且不保证数据包到达的顺序。因而产生一个可怕的问题:在没有可用带宽的情况下,数据包就会被简单地丢弃。这样,许多服务级别高的付费用户就无得到服务级别的保证。比如:企业和企业之间的交易就比一般的浏览需要更可靠的服务保证,一个股票在线交易就比普通的下载更加需要实时保障。所以,随着运行在网络上的用户和数据量的增加和电子商务的飞速发展,在有限带宽和网络资源的条件下,Http显然是一个制约Web服务性能的一个瓶颈,Http协议无法为Web服务器提供区分服务和性能保证。 

虽然可以使用新设计的协议如“可靠 HTTP”(Reliable HTTP,HTTPR)、“块可扩展交换协议”(Blocks Extensible Exchange Protocol,BEEP)和“直接因特网消息封装”(Direct Internet Message Encapsulation,DIME) [2],但这些用于 Web 服务传输的新协议(如 HTTPR 和 BEEP)的广泛采用还需要一些时间。因此,使用 Web 服务的应用程序设计人员在设计系统时应该理解 Web 服务的性能问题,比如延迟和可用性。下面给出了一些改善 Web 服务性能的策略来解决这个问题。 

2.2四解决策略 

2 .1.1使用异步消息队列 

习惯上,许多应用程序使用同步消息传递,当在自己的计算机上运行应用程序时,同步的消息传递是没什么问题的;组件通信的延迟以几毫秒计。但是,对于 Web 服务来说,它们是通过因特网进行通信,这意味着延迟要以几十、几百甚至几千微秒计。 

依赖远程 Web 服务的应用程序可以使用消息排队来改善可靠性,但要以响应时间为代价。 一个企业内的应用程序和 Web 服务可以使用消息排队如“Java 消息传递服务”(Java Messaging Service,JMS)或 IBM MQSeries 进行 Web 服务调用[2]。企业消息传递为整个企业内的关键数据异步交换提供可靠、灵活的服务。 消息队列有两个主要优势: 

(1)它是异步的:一个消息传递服务提供者可以在消息到达时向请求者传递消息,请求者不必为接收消息而请求消息。 

(2)它是可靠的:消息传递服务可以确保一条消息被传递一次,且仅传递一次。 

将来,因特网上的发布和订阅消息传递系统如 alphaWorks 上的 Utility Services 包可以用于 Web 服务调用[3]。 

2.1.2对到来的Http请求进行分类 

实现Web QoS的一个重要环节是对到来的Http请求进行分类,在传统的Web服务中 HTTP的请求是直接由工作进程侦听的,它对于所有的请求均采用先到先服务的处理方式,显然这种方法忽略了客户的优先级别。现在通常使用一种用连接管理模块,可以对不同的请求进行分类,并设定其优先级,这样就可以实现对不同用户的差别服务。请求分类是实现Web差别服务的核心模块,它对不同的请求设定不同的优先级并将其放入相应的队列。分类的方法有很多,可以根据实际的需要进行选择,目前常用的方法可以分为以下几类: 

(1)   根据不同的用户分类 

要对客户进行分类,客户可以按服务器的要求输入一定的信息,服务器以此来判断客户的身份。一种方法是用客户的IP地址来区分客户,这种方法是在QoS Web服务器模型中,服务器可以对客户的服务请求设定不同的服务等级,按照预先定义的资源分配策略对客户的服务请求作出响应[4]。这种方法具有占用带宽小,容易实现,客户等等时延小的优点。但缺点是客户端的IP地址经常会被代理服务器或者防火墙所屏蔽,因此它的应用也受到限制。 

另外一种方法是基于Http Cookie的分类,它是将Web Cookie嵌入Http请求内,以表明客户所属的类别。HTTP请求中的Cookie是可以由服务器发送给浏览器的唯一标识符,它可以内嵌在HTTP请求中,用来表示不同的服务级别。服务商可以给某个特定的服务提供一个永久的Cookie以供给用户使用。这样,就可以为付费用户和免费用户设置不同的优先级,利用cookie 来识别用户信息,记录下用户在一段时间内的访问倾向,例如经常浏览哪一类的网页,或者常常购买哪一类的商品;并将有相同兴趣的用户归类分组。当用户访问网站时,服务器可以根据他们的兴趣倾向推荐他们可能接受的网页,而且可以预测用户将来可能的行为,以此来提高服务质量。 

和基于Http Cookie的分类相似,基于浏览器plug-in的分类是将特定的标识符嵌入Http请求内以表明客户所属的类别。浏览器中的plug-in插件是内嵌在客户端的又一种标识方法,购买了某种优先级服务的用户可以从服务器端下载特定的插件,把它放入HTTP的请求中。这些方法可以对客户进行分组,从而对高级别的客户提供更好的Web QoS保证。 

以上这些方法虽然很准确,但是比较繁琐,增加了客户的等待时延,同时也为判断客户的身份占用了额外的带宽。

(2)   根据请求的目标分类 

根据请求的目标所特有的一些属性和特点,我们可以对客户进行分类。我们都知道,由于URL请求类型或文件名路径可以区分不同请求,以及若多个站点访问同一Web服务器节点的时候,服务器可以识别其IP。所以可以用基于URL请求类型或请求的文件路径的分类和基于目标IP或端口的分类两种方法来实现Web QoS控制。这种分类方法同样也可以为高级别用户提供优先服务。较好地消除由于在网络少量较大时,由Http协议而产生的瓶颈[5]。 

不同的URL请求类型或者不同的请求文件路径表明了请求的不同的重要程度,在这种情况下请求的重要性与发送者是无关的。它侧重于对于不同的请求动作和请求目的进行分类。按照其重要程度,一般可以将请求分为紧急的 (Mission-critical) 、对时延敏感(delay-sensitive)的、和尽力而为(best-effort)传送3种。 例如,在电子商务应用中,购买商品的用户显然应当比仅仅浏览的用户获取更高的优先级目的地的IP地址,如果在同一个网络节点中架设多个Web站点,那么就要用目的地址来区分请求的重要性。 

(3) 利用其他网络参数 

Web服务器也可以将传输和路由中对数据包分级的参数集成到自己的连接管理模块中。例如,在因特网的差分服务体系中,IP数据报头的TOS域常被用作包的优先级标识,Web服务器可直接从IP头取出TOS域中的数据作为请求的优先级[5]。这样,也可以达到高级别用户服务的保证。 

2.1.3、通过备份使服务平滑降级 

在每个服务器上存储多份不同质量的Web 内容。当服务器超载时,可以使服务器有选择地为客户提供适宜质量的Web 内容,即以体面的方式为低优先级客户提供平滑的服务降级[6],而保证高优先级的客户不会受到降级服务。这样就可以在服务器过载的情况下自适应地提供连续的内容降级服务而不是简单地拒绝请求,从而能够更好地为用户提供Web QoS。 

2.1.4、其它的保证Web Qos的方法 

除了上文中所述的方法之外,我们还可以提供主动Web服务 QoS 的方法,如服务请求的高速缓存和负载平衡,服务提供者可以主动向服务请求者提供很高的 QoS。在Web服务器级别上和 Web 应用程序服务器级别上都可以完成高速缓存和负载平衡。负载平衡区分各种类型通信的优先次序,并确保适当地按照每个请求所表现出的价值对待它。 

3、 结论和展望 

随着Web 服务的广泛扩大,服务质量QoS 将变成一个判定服务提供者是否成功的重要因素。QoS 决定服务的可用性和实用性, 本文所列出的消除Http对于Web服务性能瓶颈的方法针对性强,易于实现。随着Web QoS研究技术的发展,基于中间件技术和Web服务器集群的QoS控制机制必将给Web提供更可靠的服务保障,有待我们进行更深入的研究。 

 

 

http://baalwolf.iteye.com/blog/1322302

分享到:
评论

相关推荐

    性能测试方案及对策模板.doc

    本文档旨在为XXXX系统提供一个详细的性能测试方案,旨在发现并解决可能存在的性能瓶颈,确保系统在预期的工作负载下能够稳定、高效地运行。编写此方案的目的是为了提前识别和优化系统性能问题,避免在实际生产环境中...

    门户网站架构方案及对策.doc

    综上,这份“门户网站架构方案及对策”文档详细探讨了如何构建一个高效、稳定且易于扩展的门户系统,从性能瓶颈的识别到具体的技术实施策略,为IT专业人士提供了宝贵的参考。在实际操作中,还需要结合业务需求、技术...

    java应用性能内存调优

    通过建立一个专门的URL渲染工具,可以显著提高页面加载速度。此外,减少内存中的缓存对象数量也是提升性能的关键之一。例如,可以尽量使用简单的数据类型(如int而非Object),避免创建空的容器对象等。 #### 九、...

    大型园区网络方案与对策.doc

    总的来说,这份文档提出的大型园区网络方案关注了网络的各个方面,从基础设施到应用服务,旨在构建一个满足现代教育需求、具有扩展性、可管理性和安全性的网络环境。这样的网络不仅有利于提升教学效率,也能支持日常...

    新时期Oracle数据库优化设计和对策研究.pdf

    总之,Oracle数据库的优化设计是一个综合性的过程,涉及到数据模型、系统配置、资源管理和分布式计算等多个层面。通过持续的优化,可以显著提升数据库的性能,满足新时期对数据处理和分析的高要求。

    tuning openbsd

    在IT领域,尤其是在网络服务器管理与优化方面,OpenBSD作为一个高度安全、稳定且功能丰富的操作系统,经常被专业人员用于构建高性能的网络基础设施。本文将基于提供的文件信息——标题为“tuning openbsd”,描述...

    NET_框架的常见问题.rar

    .NET框架是微软开发的一种软件框架,它为开发者提供了一个用于构建、部署和运行应用程序和Web服务的统一平台。本文将详细探讨.NET框架的一些常见问题及其解决方案。 1. **安装问题**: - **兼容性问题**:确保操作...

    SCRT+Fidder+Willow

    6. **Willow插件**:Willow可能是一个Fiddler的扩展,增加了特定功能,比如自动化测试、数据分析或者其他特定用途的调试工具。 SCRT(Secure Cross Reality Terminal)则可能与虚拟现实或增强现实应用的远程安全...

    C# 网络爬虫-做了算法优化和连接优化

    7. **日志记录**:通过记录日志,可以跟踪爬虫运行状态,方便调试和分析性能瓶颈。 8. **反爬虫策略**:理解常见的网站反爬机制,如验证码、User-Agent限制、IP封禁等,并采取相应对策,如更换User-Agent、使用代理...

    xxxxxx系统 - 试运行报告

    - **系统问题**:可能包括软件bug、性能瓶颈等。 #### 六、系统试运行结论 - **总体评价**:从试运行情况来看,系统总体上满足要求,业务模块逐步完善,系统运行趋于稳定。 - **正式运行准备**:已具备正式运行所...

    软件系统试运行报告模板.pdf

    软件系统试运行是项目开发过程中的关键环节,旨在验证系统是否满足预期的功能性、性能性和稳定性需求,同时检测并解决可能存在的问题,为系统的正式上线运行提供保障。以下是对报告中涉及的主要知识点的详细说明: ...

    MFS权威指南 Moosefs

    1.7.1 Master性能瓶颈..............................................................13 1.7.2 体系架构存储文件总数的瓶颈。....................................................13 1.7.3 单点故障解决方案的...

Global site tag (gtag.js) - Google Analytics