随着信息技术的不断发展,人们对网络与计算机的要求也不断提高,在要求能够完成用户操作请求的基础上,同时要求各类应用能够做到较完美的用户体验。在各类网络应用服务中,要做到用户体验的要求,除了要做到用户界面友好、能够响应用户请求等基本要求外,还必须保证有较快的响应速度[1]。然而在各类并发数量较大、数据交换量大的应用服务当中,要做到这一点还需要进行合理的网络和应用服务部署。
1 应用服务瓶颈分析
图1是某企业应用服务的常规部署简化图。该企业通过ISP1和ISP2提供的两条链路接入Internent,应用服务器部署在企业内部,企业内用户通过企业局域网访问应用服务器,Intertnet用户通过个人宽带等方式访问。由图1可见,对于企业内部用户,影响响应速度的因素包括局域网的性能和应用服务的性能;而对于Internent用户,除应用服务性能、部分主干网性能的影响外,还取决于网络总出口两条链路带宽能否得到有效应用(每个ISP提供的最大带宽是确定的)。由此可见,影响应用服务响应的主要因素是网络出口链路瓶颈、局域网性能和应用服务性能瓶颈。
2 负载均衡解决瓶颈问题
负载均衡(又称为负载分担),英文名称为Load Balance,核心的意思是将要处理的任务或者操作请求分摊到多个操作单元上进行执行,由此提高设备利用率和处理效率[2]。比如:企业业务服务器在客户访问量巨大时仅靠单一的服务器来处理各项业务时,可能造成服务器因负荷过重而导致响应速度变慢,但如果把这些处理任务分配在多台设备上进行,那么每台设备上承载的任务就较轻,响应速度会加快;大量数据通过一条链路传输可能很慢,但是分担到多条链路上传输将变快,这就是负载均衡。负载均衡建立在现有网络结构之上,它提供了一种廉价又有效的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性[3]。
2.1服务器性能瓶颈
对于服务器性能瓶颈问题的解决,采用高性能的服务器设备理所当然可以实现,但是成本较高;为了节约成本并得到高性能服务器的快速响应效果,我们基于服务器群集、应用负载均衡技术实现。简单地说,就是使用多台普通服务器作为群集的服务器,如图2所示,假设服务器对外服务的IP地址为61.178.249.80,
就把这个IP作为群集的虚拟IP地址,对于群集的物理服务器,我们配置具体的IP地址为61.178.249.81和61.178.249.82,当用户访问时通过群集的虚拟IP地址61.178.249.80访问,负载均衡会根据各服务器的负载情况来选择该访问哪台服务器。下面以基于.NET的在线考试系统为例,讲述主要的实施步骤。因为.NET是基于WINDOWS系列的操作系统,因此选用WINDOWS SERVER2003作为服务器的操作系统,分别在两台服务器操作系统的网络连接属性中增加“负载均衡”,并在负载均衡属性中设置服务器群集虚拟IP地址为负载均衡专用IP地址,然后分别设置两台服务器IP地址,在高级选项卡中增加服务器群集虚拟IP地址即可;根据应用系统的运行要求,安装相应的环境并进行合理配置,这里是.NET框架和IIS。在LINUX等其他主流的操作系统环境下也有相应的服务器群集方法。这种单纯靠操作系统实现的服务器群集负载均衡方法不需要额外的投入、且操作简单,当然也可以借助专用的负载均衡器这类硬件设备实现,效果更好[4]。
2.2网络瓶颈
在网络中,数据的传输链路是通过路由选择的,在不增加额外投入的前提下可根据出口的情况通过配置出口路由器策略路由的方法来均衡各出口链路的负载。在出口路由器上配置策略路由时考虑以下几点:根据往常各网段的网络流量情况,按照两个出口带宽的比例将网段分成网段流量之和比例相近的两部分,网络流量总和较小的那部分网段访问外网时走带宽较小的链路,而另一部分网段走另一条链路;根据目标地址所属运营商走不同的运营商链路;添加指向不同链路的默认路由,指向带快较大链路的路由优先级设置高点。
启用策略路由后,数据通过路由转发时先根据策略路由来确定下一跳,下一跳可达则执行策略路由,由此对链路的负载进行了控制;策略路由不可达则查询路由表;由于有多个出口,指向多个出口的默认路由优先级不同,因此即使某条链路故障时,另外的链路也可正常工作。
提升局域网主干网络性能可以通过以太网通道来实现,以太网通道可以将多条物理链路聚合为一条逻辑链路,由此可以达到提升网络带宽、链路负载均衡和冗余备份的效果。具体实施时如图3所示,分别在核心交换和汇聚交换机上选定三个同类型的端口作为待聚合的端口,配置聚合协议和负载均衡的方式即可。负载均衡的方式比较灵活,主要有:基于源IP、基于目的IP、基于源-目的IP、基于源端口,基于目的端口,基于源-目的端口等方式,可根据需要灵活选用。
核心和汇聚交换机上主要配置如图4。
这样配置后,三条1G带宽的链路相当于1条3G带宽的,而且可以根据设定的负载均衡方式进行负载均衡,并且当部分链路故障时,其他的链路可以保障网络的正常。
2.3 使用负载均衡器进行负载均衡
和传统的基于路由和二、三层交换的网络设备不同,应用负载均衡器实施的关键是对应用的理解,针对具体应用系统的特性来设计和部署。
目前广泛使用的负载均衡器较多,较高端的如:F5-BIG-IP-LTM、Radware DefensePro(3020)、Array TMX 5000等。这类负载均衡器支持多种负载均衡算法,用户可根据设计需求进行负载均衡策略的设置;此外,还能够抵御各类影响服务器性能发挥的攻击。如Radware DefensePro 3020就具有入侵防范的功能,且支持多条Internent链路接入,能够防护来自多条链路的应用层攻击、DDos攻击等 [4]。这类应用负载均衡器的基本原理如图5所示。
负载均衡器对外提供一个虚拟的应用服务器,接收所有客户端的请求,对内通过负载均衡算法将客户请求转发到后台的多个应用实例,并通过应用健康检查准确判断应用程序的工作和服务状况,一旦发现服务异常的应用实例则将其从负载均衡的应用服务组中剔除。如F5-BIG-IP应用交换机对服务器作负载均衡是采用基于网络地址转换(NAT)的负载均衡技术[4]。
3 结束语
经过对使用负载均衡技术前后应用服务的性能测试情况对比发现,使
用负载均衡技术后的应用服务性能大大提升,这也充分表明瓶颈问题得到有效缓解。这一应用服务瓶颈解决方案可以在各类应用服务器的部署过程中用于提升网络可靠性和网络性能。
然而,网络的实际情况在不断变化,有效地选择最佳路由路径、避免网络瓶颈的发生需要根据变化着的实际的网络情况来选择,对于要求较高的应用服务需要使用支持实时探测负载情况、支持多种负载均衡算法的负载均衡器来实现[5]。
参考文献:
[1] 秦琴.运用负载均衡技术来实现网络优化[J].科技资讯,2007,(22).
[2] 宋薇薇.群集系统中的几种负载均衡技术[J].程序员,2002,9.
[3] 喻芸.网络负载均衡问题的对策和建议[J].科技广场,2008(3):56-58.
[4] 徐昆,夏玉福.基于网管业务特征的负载均衡策略研究[J].计算机应用研究, 2012(3)
[5] 宋兴彬.集群和负载均衡技术在省级数据集中的应用研究[J].计算机工程与设计,2009(3):24-25.