基于WAS的集群性能测试研究

时间:2022-06-27 08:51:35

基于WAS的集群性能测试研究

摘要:LVS集群中有多种数据转发方式和调度算法,为了研究每种算法对集群性能的影响,该文首先搭建一个LVS-NAT类型的集群,然后采用WAS软件来测试2种常用算法的性能,并对测试结果进行简单的分析,进而分析对集群性能的影响。

关键词:LVS集群;调度算法;WAS

中图分类号:TP311文献标识码:A文章编号:1009-3044(2009)27-7630-02

Research of Cluster Performance Test Based on WAS

WANG Chun-juan

(Department of Computer, Shanxi Institute of Education, Xi'an 710061, China)

Abstract: There are many ways of data forwarding and Load Balancing algorithms in LVS Cluster, in order to research the influence to cluster performance of each algorithm, this article build a LVS-NAT cluster first, and test the performance of this two algorithms with WAS, then analyze the testing results simply, so analyze the influence to the cluster performance of algorithm.

Key words: LVS cluster; load balancing algorithm; WAS

集群技术是随着Internet发展而产生的一种解决提升服务器性能的有效方案之一,是一组通过局域网或广域网连接起来的多台服务器,对Internet的所有用户呈现唯一的IP地址,即虚拟IP(Virtual IP,VIP)地址,而用户想要获取的资源和服务就存放在集群后台的服务器上,它对用户而言就像是一台高性能的计算机,网络管理人员可以根据网站的实际处理能力和对用户的响应速度随意增加或者减少系统中的服务器,也可更改集群及其真实服务器的配置,这样不仅提高了系统的伸缩性和处理性能,也降低了成本。

目前,应用的比较广泛的集群方案就是Linux虚拟服务器集群,采用LVS集群技术搭建高性能的服务器,各服务器彼此之间的系统资源利用率经常存在很大差距,要解决该问题,必须依赖有效的负载均衡算法,有效的负载均衡算法可将用户请求合理地分配给后台各个服务器,使各服务器比较均衡地承担任务,进而提高集群系统的处理能力和服务质量。

1 LVS集群的种数据转发方式和调度算法

1.1 LVS集群的种数据转发方式

LVS集群有3种数据转发方式,这3种数据转发方式分别为:网络地址转换(LVS-NAT)、直接路由(LVS-DR)和IP隧道(LVS-TUN)。下面简单介绍它们的工作原理。

1) LVS-NAT(Virtual Server-Network Address Translation)模式,通过地址转换实现虚拟服务器。通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器,真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。

2) LVS-DR(Virtual Server-Direct Routing)模式,通过直接路由实现虚拟服务器。负载均衡器通过改写请求报文的MAC地址,将请求发送到真实服务器,而真实服务器将响应直接返回给客户。

3) LVS-TUN(Virtual Server-IP Tunneling)模式,通过IP隧道技术实现虚拟服务器。调度器把请求报文通过IP隧道转发至真实服务器,而真实服务器将响应直接返回给客户,所以调度器只处理请求报文。

1.2 LVS集群的调度算法

LVS集群中提供了8种调度算法,分别为:轮叫、加权轮叫、最小连接、加权最小连接、基于局部性的最少链接、带复制的基于局部性最少链接、目标地址散列和源地址散列。而轮叫、加权轮叫、最小连接和加权最小连接算法是常用的4种算法。

LVS中常用的调度算法包括两大类,具体说明如下:

1) 静态调度算法:它不考虑每台服务器当前实际的负载情况,而只是根据事先定好的调度策略进行任务请求的分配,将用户请求轮转依次分配给各服务器,并且考虑到了权值W(Si),保证权值为0的服务器不被调度,该算法实现简单且容易配置,但不能真正保证各服务器负载均衡。

2) 动态调度算法:动态算法将服务器当前实际的连接数作为实际的负载情况,同时考虑到各服务器的处理能力并赋以相应的权值W(Si),将用户的请求发送给连接数最小或者加权连接数最小的后台服务器,充分利用每台服务器的系统资源,从而减小用户请求服务的响应时间。

其中轮叫和加权轮叫算法属于静态调度算法;最小连接和加权最小连接算法属于动态调度算法。

2 集群的搭建与性能测试

2.1 集群的搭建

1) 集群的物理结构

本文测试所搭建的集群类型为LVS-NAT形式的,具体的物理结构如图1所示。

2) 集群的配置

根据图1显示,我们配置的集群为LVS-NAT类型的,我们用于测试的调度算法分别为加权轮叫和加权最小连接算法。下面具体说明调度器端的配置方法。

调度器上安装的操作系统是Red Hat Linux 4.0 Enterprise,LVS集群在调度器上的配置过程主要包括以下几个步骤:

(1) 安装和编译支持IPVS的内核

内核源代码需要2.4.24以上版本的内核代码,本文用到的内核源代码为:Linux-2.6.18.tar.bz2。

(2) 配置支持IPVS的内核对Linux Kernel可以通过一个图形化的界面来进行支持IPVS内核的相关配置,通过make menuconfig这个命令来进行具体的设置,依次进入的配置页面为:NetworkingNetworking optionsIP:Virtual Server Configuration,将其全部设置为M,即可用的意思。

(3) 安装和编译集群管理软件ipvsadm

重新启动Linux,选择LVS项进入Linux,开始安装LVS集群的管理软件ipvsadm,集群的配置就是通过ipvsadm管理软件来完成的。

(4) 配置集群并添加服务器到集群中

从图1中可以看到,调度器需要配置两个IP地址,因此需要两块网卡,第一块网卡eth0绑定一个外部VIP地址(202.117.192.7),第二块网卡eth1绑定局域网的内部RIP (192.168.10.254)。

这里的配置主要有如下几个主要的命令:

第一步:首先需要在调度器上启用路由转发功能,具体的命令是:sysctl -w net.ipv4.ip_forward=1。

第二步:对局域网作NAT,具体的命令是:iptables -t -nat -A POSTROUTING -s 192.168.10.0/28 -d 0.0.0.0/0 eth0 -j MASQUERADE。

第三步:清除调度器上原来的负载均衡策略,具体的命令是:ipvsadm -C(如果是第一次配置集群,不用执行这一步)。

第四步:增加第一个集群, 具体的命令是:ipvsadm -A -t 202.117.192.7:80 -s wlc,其中,-A 表示增加一个集群;-t表示基于TCP协议以及80端口;-s表示调度算法为WLC,即加权最小连接算法,而加权轮叫为WRR。

第五步:增加第一台真实服务器,具体的命令是:ipvsadm -a -t 202.117.192.7:80 -r 192.168.10.1:80 -m -w 1,其中,-a表示要增加真实服务器;-t表示要往哪一个集群服务里添加,即调度器的IP地址;-r指名了真实服务器的IP地址;-m表示使用NAT类型的地址伪装方式,即网络地址转换方式;-w表示第一台服务器的权值为1。

第六步:可用第5部分的方法,继续添加该集群中第二台服务器,它的IP地址为192.168.10.2:80,权值为1。

每台服务器权值Wi的选取:由于自己搭建的LVS-NAT集群中有两台硬件配置一样的服务器,故将W1和W2都设置为1。

第七步:使用这个命令ipvsadm -L -n来动态地查询集群的数据转发方式以及所有真实服务器的权值和当前连接数。

以上就是LVS-NAT方式集群的搭建过程,是进行加权轮叫算法和加权最小连接算法性能测试和对比的集群实验环境。

2.2 集群的性能测试

1) 测试软件

微软公司提供的免费网络负载测试工具WAS(Web Application Stress)是本文采用的测试软件,可以模拟实际网络中大量的并发用户,并且对提供网络服务和资源服务器的操作系统没有特殊的要求。在测试之前,可设置相应的并发用户数、测试时间,请求页面等具体参数,最后再运行配置好的测试脚本。

2) 集群性能指标和测试结果

(1) 集群性能指标

平均应答延迟(TFB Average):TFB Average表示从第一个请求发出到安装测试工具WAS的客户端收到集群中真实服务器应答数据的第一个字节之间的平均时间,这个值越小表示服务器响应用户请求速度越快;吞吐量(Bytes Recv Rate (in KB/s)):Bytes Recv Rate表示用户单位时间内收到的信息流量大小,值越大表示吞吐量越高。

(2) 测试结果

因为论文中需要测试的是加权轮叫算法和加权最小连接算法之间的性能比较情况,在使用WAS工具进行测试时,使用相同的客户机运行WAS并发送模拟的用户请求,并且为每种被测试的算法设置相同的条件,即使用相同的测试脚本,这样才可以更加准确的衡量2种算法之间的性能差异。实验所得两种算法下的数据如图2、图3所示。

3 结束语

从图2和图3中的测试结果可以看到:当用户请求连接数在100-300之间时,两种算法的负载均衡效果接近,但当连接数大于300时,加权最小连接算法的性能要比加权轮叫算法的性能好一些,具体表现是:响应时间相对要小,且吞吐量相对较高。总之,配置不同的调度算法,集群就会有不同的处理性能,在日常应用中可根据需要搭建和配置不同的集群类型和调度算法。

参考文献:

[1] 郑灵翔,刘君尧,陈辉煌.Linux下的负载均衡集群LVS实现分析与测试[J].厦门大学学报:自然科学版,2005,41(6).

[2] 倪继利.Linux内核分析及编程[M].北京:电子工业出版社,2007.

[3] Karl Kopper.Linux企业集群 [M].沈金河,李秋霞,译.北京:中国水利水电出版社,2007.

上一篇:探析SAN存储光纤盘阵的配置 下一篇:P2P网络拓扑模型分析