企业IT管理基础知识巩固系列之(四)负载均衡

招标工作基本结束,在前几天做技术部分打分表的时候,对负载均衡的核心参数做了一个学习和研究。

从字面意思上来看,负载均衡就是做资源动态平衡分配的,使资源使用效率更高。在这个设备资源有限、性能和网络速度却要求非常高的IT领域,这个设备(或功能)还是很重要的。

先解释下什么叫做“负载均衡”?

互联网早期,业务流量比较小并且业务逻辑比较简单,单台服务器便可以满足基本的需求;但随着互联网的发展,业务流量越来越大并且业务逻辑也越来越复杂,单台机器的性能问题以及单点问题凸显了出来,因此需要多台机器来进行性能的水平扩展以及避免单点故障。但是要如何将不同的用户的流量分发到不同的服务器上面呢?

早期的方法是使用DNS做负载,通过给客户端解析不同的IP地址,让客户端的流量直接到达各个服务器。但是这种方法有一个很大的缺点就是延时性问题,在做出调度策略改变以后,由于DNS各级节点的缓存并不会及时的在客户端生效,而且DNS负载的调度策略比较简单,无法满足业务需求,因此就出现了负载均衡。

客户端的流量首先会到达负载均衡服务器,由负载均衡服务器通过一定的调度算法将流量分发到不同的应用服务器上面,同时负载均衡服务器也会对应用服务器做周期性的健康检查,当发现故障节点时便动态的将节点从应用服务器集群中剔除,以此来保证应用的高可用。

负载均衡两种层级的工作模式

负载均衡又分为四层负载均衡和七层负载均衡。四层负载均衡工作在OSI模型的传输层,主要工作是转发,它在接收到客户端的流量以后通过修改数据包的地址信息将流量转发到应用服务器。

七层负载均衡工作在OSI模型的应用层,因为它需要解析应用层流量,所以七层负载均衡在接到客户端的流量以后,还需要一个完整的TCP/IP协议栈。七层负载均衡会与客户端建立一条完整的连接并将应用层的请求流量解析出来,再按照调度算法选择一个应用服务器,并与应用服务器建立另外一条连接将请求发送过去,因此七层负载均衡的主要工作就是代理。

既然四层负载均衡做的主要工作是转发,那就存在一个转发模式的问题,目前主要有四层转发模式:DR模式、NAT模式、TUNNEL模式、FULLNAT模式。

DR模式也叫作三角传输,通过修改数据包的目的MAC地址来让流量经过二层转发到达应用服务器,这样应用服务器就可以直接将应答发给应用服务器,性能比较好。由于这种模式需要依赖二层转发,因此它要求负载均衡服务器和应用服务器必须在一个二层可达的环境内,并且需要在应用服务器上配置VIP。

NAT模式通过修改数据包的目的IP地址,让流量到达应用服务器,这样做的好处是数据包的目的IP就是应用服务器的IP,因此不需要再在应用服务器上配置VIP了。缺点是由于这种模式修改了目的IP地址,这样如果应用服务器直接将应答包发给客户端的话,其源IP是应用服务器的IP,客户端就不会正常接收这个应答,因此我们需要让流量继续回到负载均衡,负载均衡将应答包的源IP改回VIP再发到客户端,这样才可以保证正常通信,所以NAT模式要求负载均衡需要以网关的形式存在于网络中。

TUNNEL模式的优缺点和DR是一样的,并且TUNNEL模式要求应用服务器必须支持TUNNEL功能。

FULLNAT模式是在NAT模式的基础上做一次源地址转换(即SNAT),做SNAT的好处是可以让应答流量经过正常的三层路由回到负载均衡上,这样负载均衡就不需要以网关的形式存在于网络中了,对网络环境要求比较低,缺点是由于做了SNAT,应用服务器会丢失客户端的真实IP地址。

下面详细介绍一下FULLNAT模式。首先负载均衡上需要存在一个localip池,在做SNAT时的源IP就是从localip池中选择的。当客户端流量到达负载均衡设备以后,负载均衡会根据调度策略在应用服务器池中选择一个应用服务器,然后将数据包的目的IP改为应用服务器的IP。同时从localip池中选择一个localip将数据包的源IP改为localip,这样应用服务器在应答时,目的IP是localip,而localip是真实存在于负载均衡上的IP地址,因此可以经过正常的三层路由到达负载均衡。由于FULLNAT比NAT模式多做了一次SNAT,并且SNAT中有选端口的操作,因此其性能要逊色于NAT模式,但是由于其较强的网络环境适应性,我们选择了FULLNAT作为MGW的转发模式。

评价负载均衡设备性能的三个主要参数

分别是四/七层吞吐量、最大并发连接数与四层新建连接数速率,这三大维度的具体指标决定了负载均衡产品的性能效果。

一、四/七层吞吐量,不再看throughput,而要看HTTPGoodput

1.什么是吞吐量

衡量负载均衡产品性能最常见,也是最基础的指标就是“吞吐量”,这个概念在路由设备、防火墙等网络设备上都有体现。

什么是“吞吐量”?简单来说,我们可以把负载设备想像为一个管道,单位时间内能通过管道的最大流量就是吞吐量。所以,单位时间内能通过的流量越大,就意味着负载均衡设备的处理能力越高。而所谓的“四/七层吞吐”,也就是开启四层功能和七层功能时,设备的处理能力。

2.吞吐量的标准测量方法

吞吐量有标准的测试方法,传统路由器、防火墙都是通过测试单位时间内不同大小的UDP数据包来衡量产品性能的,也就是我们通常所说的“throughput”。但这个指标对负载均衡产品已经“落伍”了。

在联通测试中,运营商使用一种更“严格”的指标去考量负载均衡产品的性能——“HTTP有效吞吐(HTTPGoodput)”。因为UDP的传输过于简单,与设备实际处理能力相差太远,在实际网络中,各种应用协议大多是通过TCP传输的,TCP协议有更复杂的协商流程,作为与应用结合密切的负载均衡设备,传统防火墙的UDP吞吐量对其并不关键,真正能处理应用层协议的能力才是看“真章”的地方。

在实际测试中,运营商会利用专业测试仪表模拟真实客户向服务器发起HTTP请求,经过负载设备后,模拟服务器将给予响应,在此过程中,不断加大模拟客户端的数量,直到负载设备出现无法及时处理、连接失败或响应超时、测试仪器上记录的无失败时所能处理的最大HTTP传输流量统计为止。

与传统的UDP吞吐相比,HTTP有效吞吐在衡量负载设备的性能方面要更接近实际环境,也更加严格。

二、最大并发连接数

如果说,吞吐量的指标衡量的是一个管道的话,那么最大并发连接数则相当于一个“装水的瓶子”,所谓最大并发连接就是指这个瓶子所能装的“水”的容量,即负载设备所能维持的最大连接数的个数。

对于并发连接的测试,测试仪需要模拟HTTP客户端以一定速率向负载设备发起连接请求,并持续保持连接不中断。在这个过程中逐渐增加连接的个数,直到负载设备出现处理失败,再统计出负载设备所能承载的最多的连接个数。

该参数虽然重要,但在联通测试中却并未刻意强调。原因很简单,该指标只取决于设备的内存容量,说白了一句话,并发连接数是由内存大小决定的,而且现在设备的内存数所能承载连接早已经超过大多数的实用场景。

三、四层新建连接数速率(L4 CPS)

在联通测试中,四层每秒新建连接速率被异常重视,其中连接的概念也被严格定义:需要有完整三次握手的过程(SYN,ACK/SYN,ACK),一次HTTP的请求和应答,以及TCP 连接的关闭(FIN,ACK,FIN,ACK)过程——这样操作是为了尽可能模拟实际应用。

四层连接速率,就是以尽可能高的速率向设备发送连接请求,在完成连接数据传输后,又迅速关闭连接,以避免数据包大小对最终结果的影响,连接传输的数据被设置为64字节,联通系统通过这样的方式充分考验设备每秒能处理的连接的数量。对于运营商用户来说,这个指标对应用交付产品应付突发大量连接非常重要。这有点像我们身边的地铁入口,虽然地铁运力很强,但如果入口修太小了,在高峰期很多乘客还是不能顺畅的走进去!

三个参数中,最重要而且值得评价的参数为两个:最大吞吐量、四层新建连接数速率(L4 CPS)。

市面上有专门的负载均衡设备,当然也可以自己架设服务器利用负载均衡软件(系统)来搭建。可根据不同业务需要来选择。

总结下来,就是负载均衡很重要,最好要有(基本都是必须做的)。可自由选择。评判性能主要以两个最重要的参数来区分。

参考文档:
《太一星晨:负载均衡性能参数如何测评?》
《美团l4负载均衡》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值