对于整体性能,比较有利的做法通常是调整体系结构而不是仅添加单个的硬件。无论对单台机器添加多少硬件,硬件仍然有一个最大的性能级别。
本节讨论将高速缓存代理功能引入到网络时要考虑的网络体系结构问题。
如果企业的 Web 站点受欢迎,那么对其内容的需求就不是单个代理服务器能够有效满足的,从而导致响应时间较长。要优化网络性能,请考虑在总体网络体系结构中包括已进行负载均衡的集群化高速缓存代理机器或使用具有远程高速缓存访问 (RCA) 的共享高速缓存体系结构。
缩放体系结构的一种方法是集群代理服务器并使用负载均衡器组件在代理服务器之间均衡分配负载。集群代理服务器是一种值得考虑的设计,它不仅在性能和可伸缩性方面有利,而且在冗余性和可靠性方面也有利。单个代理服务器表示单一故障点;如果它发生故障或由于网络故障而变得无法访问,那么用户无法访问 Web 站点。
还请考虑具有 RCA 的共享高速缓存体系结构。共享高速缓存体系结构将整个虚拟高速缓存分布在多个高速缓存代理服务器上,这些服务器通常使用高速缓存间协议,如因特网高速缓存协议 (ICP) 或高速缓存阵列路由协议 (CARP)。RCA 旨在通过提供较大的虚拟高速缓存来使集群化高速缓存命中率最大。
使用代理服务器的 RCA 阵列会导致提高性能,这与单个独立高速缓存代理或者甚至于与独立高速缓存代理机器的集群相反。对于大多数部件,其性能是通过增加虚拟高速缓存的总大小来提高的,这会使高速缓存命中率最大并且使高速缓存不一致性和等待时间最小。使用 RCA,特定文档仅有一个副本驻留在高速缓存中。使用代理服务器集群,高速缓存总大小会增加,但多个代理服务器可能会对相同的信息进行访存并高速缓存。因此总的高速缓存命中率不会增加。
RCA 通常用于大企业的内容容纳方案。然而,RCA 的作用并不局限于非常大的企业部署。如果网络的负载需要高速缓存服务器集群并且大部分请求是高速缓存命中,请考虑使用 RCA。由于配置了 RCA 时,客户机使用的 TCP 连接数会增加,所以根据网络设置的不同,RCA 并非始终都可以提高企业性能。这是因为 RCA 成员不仅负责为它具有最高分数的 URL 提供服务,并且对于它不具有最高分数的 URL,它还必须在获取该 URL 的请求时将请求转发到其他成员或集群。此意味着 RCA 数组的任何给定成员都比它作为独立服务器运行时可能打开的 TCP 连接数多。
提高性能的关键在于高速缓存代理的高速缓存能力。然而,如果未正确配置代理服务器的高速缓存,那么该高速缓存可能会成为瓶颈。要确定最佳的高速缓存配置,必须努力分析流量特征。内容的类型、大小、数量和属性会在代理服务器从源服务器检索文档所需要的时间和该代理服务器上的负载方面影响代理服务器性能。如果您了解高速缓存代理将代理或者将从其高速缓存中提供的流量的类型,那么您可以在配置代理服务器时将那些特征考虑进去。例如,如果知道要高速缓存的对象中 80% 是图像(*.gif 或 *.jpg)并且大小约为 200 KB,那么这当然可以帮助您调整高速缓存参数和确定高速缓存的大小。此外,如果了解大部分内容是不适合于高速缓存的个性化动态页面,那么调整高速缓存代理也要考虑这一点。
分析流量特征使您能够确定使用内存或磁盘高速缓存是否可以优化高速缓存的性能。并且,熟悉网络流量特征使您能够确定使用高速缓存代理的动态高速缓存功能是否可以提高性能。
磁盘高速缓存适合于要对大量信息进行高速缓存的站点。例如,如果站点内容较大(大于 5 GB)并且具有 80% 至 90% 的高速缓存命中率,那么建议使用磁盘高速缓存。然而,大家知道,使用内存 (RAM) 高速缓存更快,并且在使用纯内存的高速缓存对于大站点可行时具有许多方案。例如,如果高速缓存代理的高速缓存命中率不重要或者正在使用共享高速缓存配置,那么使用内存高速缓存比较实用。
高速缓存代理可以对 WebSphere® Application Server 动态高速缓存生成的动态内容(JSP 和 servlet 结果)进行高速缓存和使该内容无效,从而在基于网络的高速缓存中提供 Application Server 高速缓存的虚拟扩展。能够对动态生成的内容进行高速缓存对于以下环境中的网络性能非常有利:该环境中存在许多对动态生成的公共 Web 页面的请求,这些页面是否到期取决于应用程序逻辑或事件(如来自数据库的消息)。页面的生存期是有限的,但不能在创建该页面时设置到期触发器;因此没有动态高速缓存功能和“使其无效”功能的主机必须将这种页面的生存时间值指定为零。
如果这种动态生成的页面在其生存期内被一个或多个用户请求了不至一次,那么动态高速缓存功能可以提供有价值的卸载并减小网络的内容主机上的工作负载。使用动态高速缓存功能还可以提高网络性能,因为它消除了网络延迟,从而对用户提供了更快的响应,并且由于因特网遍历次数更少而减少了带宽使用量。