评估Web应用服务器的扩展能力

评估Web应用服务器的扩展能力就是测试在越来越多的用户访问过程中,Web应用服务器的性能和可用性。

一个可扩展的Web应用服务器在处理大量用户访问时,表现出高可用性和很小的性

能降低。同时当增加新的硬件时,应用服务器的容量也应相应的增加。

性能

性能是通过时间来衡量的,这个时间是指从用户提出请求—按下Submit键,手动输入URL或选择链接--到成功的完成这次请求所用的时间。如果从用户提出请求到有效的应答返回的时间大于超时时间,系统会提示请求内容不存在,这表示该服务器的性能是不可靠的。

服务器性能受三个因素的影响:Web应用服务器的构造和配置,网络基础设施和Web 页面的设计。这三个因素都是至关重要的,忽视任何一个,都会影响Web应用的效率。本节主要讲述如何构造高性能的Web应用服务器。

影响性能的主要因素

在进行设计和分析时就应该考虑到影响性能的各方面因素。下面列出了会在某个方面对性能产生影响的一些因素:

  • 数据库/后台服务器的优化— Web 应用常常需要访问一些后台服务器(如: Mail 和数据库)。这些附加服务器的性能有可能影响 Web 应用服务器的性能。

  • 页面大小— 对于相同类型的内容,无论采用何种应用服务器,字节数大的

页面总是比字节数小的页面传送的慢。

  • 应用程序结构— 在应用程序中,完成功能模块的方式有很多种,不同方式的效率是不同的。

  • 应用服务器运行机制— 应用服务器运行机制对其下应用的性能产生很大的影响。

  • 线程模式— 单线程的服务器一般比多线程服务器慢。在多线程应用中,存在多个模块,所以效率较高。

  • 内存使用/缓存— 高效的内存管理和缓存的使用能大大的提高性能。

  • 数据库连接方式— 数据库的连接和断链都需要占用资源。高效的应用服务器能重复利用数据库连接。

  • 编译和脚本处理机制—对应用程序进行预编译并与适当的缓存相结合将大 大的提高服务器性能。

  • 文本索引—Web 应用服务器上有效的文本索引机制直接影响文本查询的效率。

  • 集群状态下的负载均衡—在集群状态下对客户请求进行负载均衡处理能大

大改善应用性能。

可用性

可用性—容错能力和可靠性的代名词—表示在约束时间内系统保证服务的能力。 可用性分为两种—Web 资源提供或不提供。如果一个合法的用户申请在超时时间内

没有得到正确应答,我们称之为Web资源不提供。系统可用性包括系统应答时间、系统稳定性( 无故障运行时间) 和系统恢复能力( 出现故障后多长时间能完全恢复系统运行)。

影响可用性的重要因素

影响可用性的因素很多,下面列出了值得注意的一部分。

  • 操作系统稳定性—稳定的Web应用运行于不稳定的操作系统中将导致其稳定性的降低。

  • 硬件稳定性—硬件错误将导致服务器不可用

  • 应用服务器运行机制—不合适的运行机制会加大服务器失败或访问超时的可能性。

  • 故障恢复能力—当故障发生后,服务器能自动而有效的进行恢复。故障自动恢复所用的时间越短,表示服务器的可用性越高。

  • 支持集群服务和故障处理—集群服务是指多个服务器分担用户请求。在集群处理中,某个服务器发生故障不会导致Web应用的错误。在提供负载均衡的集群服务中,它根据服务器的空闲状态来决定那个服务器响应用户请求,为用户请求提供最快的应答响应和最小的超时时间。

  • 系统依赖—各系统之间不是相互独立的,每个系统依赖于别的系统的可靠性,多个系统组成一个系统链,链路中某一系统发生故障将导致整个链路的失败。要提高可用性,应减少系统依赖并加入冗余备份。

  • 会话和状态管理—应用服务器会话管理的效率将会大大影响服务器的效率和可用性。

扩展能力

严格的讲,扩展能力就是系统处理越来越多的负载和请求的能力。对应用服务器而言,评估扩展能力包括两方面内容:一是在固定的资源下,负载增加时它的应答能力的变化;另一是加入新的资源后,它性能的提高程度。

应 负

答 载

时 能

间 力

负载

相对于负载的直线扩展性

服务器处理能力相对于系统资源

好的扩展能力(不包括初始化缓存)是一条直线。扩展能力相对于负载成直线,意味着在相同的资源下,性能的降低和负载的增加成正比。扩展能力相对于服务器资源成直线,意味着在相同的负载下,性能的提高和资源的改善成正比。

缓存管理和资源管理所花费的开销对服务器扩展能力有一定的影响。缓存允许重复利用资源和处理过程,减少处理页面和调用资源的次数。不考虑别的因素,有效的缓存和应用服务器的扩展能力近似成线性关系。

但随着资源数量的增加,资源管理也日趋复杂.,在资源固定的情况下,包括资源

重用机制在内的额外资源管理的开销,与服务器处理能力的降低成线性关系。例如, 在一个单处理器服务器上再加入一个处理器,操作系统必须花费额外开销进行线程同 步和处理器协调工作,以提供一个均衡的多处理系统。由于新增处理器而获得的附加 处理能力,有一部分被操作系统用来管理这个新增处理器。注意,只有在一定范围内, 应用服务器的性能才和资源有关。例如,在网络带宽一定的情况下,为应用服务器加 入一个处理器并不能太多的提高性能。上面提到的扩展性与服务器资源成正比,是服 务器资源在合适的范围内得出的结论。