总第6期
2016年4月刊
Focus    焦点
Test Theory    测论
服务器负载均衡测试浅析
文/谭春梅
分享

一、服务器负载均衡概述

服务器负载均衡英文名:Server Load Balance 以下简称SLB。SLB为用户提供一个统一的访问平台,把客户端的数据均匀地分发给各台服务器,实现业务的负载分担。致力于改善资源及应用基础的可用性、响应速度、安全性和访问方便性,简化管理,降低网络建设成本从而帮助客户提高生产效率。具有如下特点:

高可用性:通过健康性检查功能,能够实时的检查应用服务器的状态,保证在部分服务器硬软件故障的情况下,整个系统仍然可用。

高性能:通过调度算法,将客户的请求合理的均衡到后端各台服务器上,消除系统可能存在的瓶颈。

可扩展性:当服务的负载增长时,直接增加背后服务器,系统仍然可以通过各种调度算法均匀分发客户请求来满足需求,且不降低服务质量。

可靠性:在组网方面SLB设备可采用旁挂模式进行流量的负载分担。支持设备堆叠双机备份,一台故障另一台可接替工作。

透明性:高效的使多台独立的服务器系统构成一台高性能的虚拟服务

图1:服务器负载分担示意图

二、SLB测试需求

模拟对某数据中心的服务负载分担,从功能、性能测试作详细介绍。

图2:某数据中心服务器负载需求组网

用户需求如下:

1. 在现网中增加部署负载均衡设备,要求不影响原组网结构及地址规划;此应用需关注SLB的组网模式测试;

2. 检查服务器组中真实服务器的健康情况,避免把客户端的请求分发给故障服务器;此应用需关注SLB的健康检查以及调度算法的遍历测试。

3. 客户访问FTP、DNS业务时,通过源地址hash算法分别在实服务组4、5内均匀分配到实服务器;此应用需关注四层SLB的应用测试;

4. 客户访问HTTP业务时,根据用户访问的报文内容进行解析,再通过调度算法分发到对应的服务器组,如:报文带game字段的访问实服务组1;报文带news字段访问实服务组2;报文带sports字段访问实服务3;此应用需关注七层SLB的应用测试;

5. 客户访问HTTP业务时,HTTP报文携带游戏字段,后续的请求分配给同一个实服务器处理,减少SLB设备对该类业务流量的分发次数;此应用需关注会话保持的测试;

6. 部分客户为避免明文传输出现安全问题,对于敏感信息采用SSL协议,如:客户3访问服务器负载均衡设备过程对HTTP协议进行加密,保证整个HTTP传输过程的安全性;此应用需关注SSL卸载功能测试;

7. 双机部署避免服务器负载分担的单点故障,一主一备,主机一旦出现故障备机接替工作;此应用需关注SLB的双机高可靠性测试;

8. 给出HTTP及HTTPS访问经过负载均衡设备处理时能够承载的最大用户量、每秒可承受最大的用户访问量,以及最大的数据传输能力;此应用需关注SLB的并发、新建、吞吐的性能指标;

针对用户的需求,下面从功能、性能两个方面进行详细描述:

三、SLB功能测试

实验室搭建多组业务相同的(如:WEB、FTP、DNS等)物理服务器(实服务)形成服务集群(实服务组),SLB按业务对外网用户提供一个虚地址(虚服务),使用多台浏览器或自行开发的Ab工具模拟客户端访问SLB虚地址。触发SLB健康检查判断实服务状态,从算法中选择适合的算法把客户请求均匀分发到每台有效的实服务。

更多的时候采用应用层测试仪器IxiaLoad或Avalanche 软件来模拟常用的应用测试SLB设备,不仅可测试功能,还可以测试性能压力。

1、组网模式测试

功能测试首先要关注各种组网应用,常用组网如下:

串行组网:SLB设备直接部署在网络的主干中,服务器和客户端之间的负载均衡报文直接由SLB设备进行转发。

单臂组网:又称旁挂模式,指SLB设备不作为服务器和客户端之间的设备,而是旁挂在路由交换设备上。(也可部署一块具备LB功能的插卡)。用于中转的路由交换设备上的配置至关重要,决定服务器返回客户端的流量是否经过LB设备。该组网对用户原有组网部署影响较小。

2、健康检查测试

SLB设备通过探针机制,检查实服务组中实服务的健康情况,保证调度算法选择的实服务都是可用的,避免把客户端的请求分发给故障实服务组,以提高业务的可靠能力。

常用ICMP健康检查,测试时以固定频率发送,如在指定连续次数以上服务器没有回应就确认其停止服务,测试不仅要关注实服务器有效时的状态,还要关注实服务宕机,设备能否及时感知并切换状态。

其他健康检查http、dns、ftp等,不仅对业务端口的服务状态进行检查,部分还会尝试性发一定量的业务请求,测试时要关注业务获取,如果在规定次数服务器没有回应就确认其停止服务。

服务器故障处理测试时,故障发生,观察健康检查状态,记录发现服务器宕机时间和将所有用户切到另一台服务器的时间;故障恢复,观察健康检查状态,查看服务器恢复时间,客户恢复访问该实服务的时间。

3、调度算法测试

调度算法是负载均衡的核心技术,其引导流量分发到指定的集群中的实服务,使各实服务尽可能均衡的处理业务。它以连接为粒度,同一条连接的所有报文都会分发到同一个实服务上。SLB提供多种负载均衡算法:轮转、加权轮转、哈希、随机、最小连接等。测试要关注每种调度算法的特点,设定负载均衡规则,测试查看网络流量是否严格按照所选算法导引转发。用户实际应用根据各自的需求选择合适的调度算法。

4、负载策略测试

新的业务请求到达时,往往需要根据业务流量的携带的特征信息进行分发,将带有指定特征的业务分发到相应的服务器组。

L4层负载均衡可基于报文IP、端口等特征字段作为分类标识,对新的业务请求进行分发。

L7层负载均衡除了可基于报文IP、端口特征外还可基于HTTP请求携带的URL、Header或Content 等特征进行请求分发,测试需要关注分发的正确性 。

有些场景下除分发到服务集群,还需要对进入SLB设备的http报文进行修改,比如对经过SLB的HTTP报文插入或删除指定的头部,用以标识或屏蔽相关信息。测试需要关注HTTP报文的头部插入、删除、重写的有效性。

5、会话保持测试

在某些情况下,一次业务交互可能包括多个连接,多个连接之间可能存在隐含的关联,需要将多个连接持续重定向到同一个服务器,通过创建会话保持表项来实现持续性功能,保证请求的正确响应。同时也减少SLB设备对此业务流量的分发次数。

L4 层SLB 可以选择报文IP、端口指引后续连接的转发。而L7层还可以按照报文头或负载信息作为持续性标识,如content、header、cookie等等。 测试不仅要关注各类表项建立的正确性,同时还要关注该表项所在的流量是否按照持续性表项分流,流量终止后表项能否正常老化。

6、SSL卸载测试

SSL 卸载是在客户端和设备之间通信进行加密,通过指定虚服务器引用的SSL服务器端策略,可以对SLB设备与SSL客户端之间传输的流量进行加密传输。一般银行、运营商、证券、政务等对对数据安全非常重视的单位会非常关注,尤其对性能要求很高。

7、高可靠测试;

图3:堆叠双机组网

SLB在解决大量用户均匀访问集群业务问题的同时,传统的单机模式容易成为网络的故障点。大部分客户目前的部署均采用双机模式来保证高可靠性,测试要关注大量客户访问情况下两台SLB之间,会话、持续性表项备份的正确性、完备性、实时性,保证主设备故障后,备设备接着工作,业务不中断。

8、虚拟负载均衡测试

在一台物理物理设备上,虚拟出大量的的逻辑负载均衡,每个虚拟SLB工作独立,互相无干扰,且负载均衡的功能均正常。在规格范围内所有虚负载均衡同时工作的情况下整个系统的稳定性。关注每个虚拟SLB的cpu、内存、资源的消耗情况。另外还需要考虑到在云管理平台部署下的适配应用测试。

四、SLB性能测试

1、L4/L7 SLB吞吐量、新建、并发测试测试

性能参数有HTTP新建、并发、吞吐量。HTTP新建速率指每一秒SLB设备能够处理的HTTP新建连接请求的数量;HTTP并发连接数指的是SLB最大能够同时处理的连接会话个数;HTTP吞吐量是指在没有丢包的情况下,SLB设备能够接收并转发的HTTP请求的最大数据速率。三个性能指标的测试方法同传统测试方法,采用Avalanche或者IxiaLoad 的HTTP协议进行测试。

L4负载均衡开启TCP类型:测试过程要关注模拟源地址的规模,关注每个连接的传输量,关注服务器页面的大小,关注是否动静态页面等,

L7 负载均衡开启HTTP类型:还需要关注深度识别HTTP协议的程度,对HTTTP 和header、cooki、body内容的识别、匹配查找、替换、重写对性能的影响。

2、SSL 卸载吞吐量、新建速率及并发测试

目前SSL卸载性能参数也是吞吐量、新建和并发。SLB设备工作在L7层,同时启动SSL加密功能,SLB与客户端之间是SSL加密的流量,SLB和实服务端为明文,一样采用Avalanche或者IxiaLoad测试仪模拟应用层性能测试场景进行测试;HTTP新建、并发及吞吐测试:

采用不同密钥长度、不同算法所测试的性能均有差异,需要看具体的用户需求而定。

3、双机及虚拟化环境下相关性能的测试。

双机组网情况下性能测试要关注双机热备开启数据备份对原有的性能影响的程度。

虚拟负载均衡,性能测试需要考虑到在虚拟负载均衡下面各项性能指标的影响因素,如:内存、cpu、资源、每个虚拟设备承载的压力程度。这样才能正确评估当前性能能否满足用户的应用场景。

五、结束语

功能测试难点在于L7层负载需要依据HTTP协议中报文特征进行分发流量、要求对报文深层解析测试。参照以往用户应用经验,实际用户的web服务器部署架构,业务流程各异,很难在实验室完全模拟。SLB实际使用时遇到问题,还需和客户深入沟通,抓包分析业务,进行适配调试,如:报文的删除、重写、有的甚至需开发定制等来保障分担后业务的畅通。通过对各局点报文分析逐渐丰富我们的测试方法和思路。

负载均衡系统性能受到多种因素的影响,所以测试给出的性能需要说明测试的环境、组网、模拟的参数等背景条件,具体开局还是要针对具体用户需求进行评估。

关闭