专家解读:如何选择负载均衡设备?
近年来,随着云计算与大数据的爆发式增长,众多大型数据中心都在积极部署或是升级负载均衡设备,以保障数据中心更加通畅可靠的运行。然而,负载均衡作为一种集硬件设备和解决方案于一体的系统型产品,并不像服务器或是PC那样可通过配置参数来辨别。在一大堆厂商负载均衡设备参数中,究竟选择哪家的才适合产品?
应用交付企业太一星晨产品总监于振波介绍,要想选择一款合适的负载均衡产品,主要可通过三方面来考虑:一是产品的性能,二是其所开启的功能,三是如何满足现有和未来的需求。
我们先来看看什么叫负载均衡
英文名称为Load Balance,其意思就是将负载(工作任务)进行平衡、分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。它建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
链路负载均衡的选择
在选择负载均衡产品之前,首先要明确这个产品的主要应用范围是链路负载还是服务器负载。这两种场景的网络应用模式差异很大,将直接影响选型的参数。
在链路负载中,负载均衡的选型更多地接近于普通的网络设备。一般情况下,网络显示出流量大,但新建并不高。
从上图可以看出,出口带宽已经达到1.5G,并发连接12万左右,设备每秒新建连接其实也就4000左右。
因此,在链路负载场景中,吞吐量是最重要的指标。实际选择中,用户可以根据网络出口带宽、实际峰值流量来计算。
在链路部署中,负载均衡通过根据IP地址、协议类型做转发,主要工作在四层模式,因此用户可以根据四层吞吐量来选择合适的产品型号。当然,如果设备上开启了根据应用协议的类型选路的功能,则需要考虑设备的七层吞吐量。算法如下:
带宽(或峰值流量) × 150% + 未来带宽扩容计划 = 设备选型四层吞吐
例如:某集团出口带宽2G,峰值流量1.2G,未来可能会扩展到4G,此时选择链路负载的性能就应该是:
1.2 × 150% + 2 = 3.8Gbps
这就意味着,用户可以选择3.5 - 4G吞吐的产品。现在,某些厂商的负载产品支持“按需负载”模式,支持该模式的负载产品,可以在不更换硬件的情况下,通过软件授权提升产品性能。这种模式下,用户可以不考虑未来的扩容升级,只购买匹配当前流量的设备即可,避免了一次买过高性能设备的资金浪费,有效地保护了自己的投资。
需要注意的是,厂商标称吞吐量的方式并不相同,有些标注的是HTTP有效吞吐,有些则标称的是UDP吞吐。标称UDP吞吐的值会更高一些,但无法真实反映产品实际处理能力。所以,如果要通过UDP吞吐来选择产品,建议将所需要的值双倍、甚至三倍来计算最终需要的设备吞吐值。
在链路负载中,新建通常并不高,因此,在这里仅仅作为参考即可。至于并发,以上图为例,实际流量1.5G的出口,并发连接数才12万个。这对现在动辄百万级别的负载产品来说,意味着并发的问题基本不用考虑了。
服务器负载均衡的选择
如果说链路负载均衡主要了解吞吐就可以,但服务器负载则需要考虑得更多,它首先需要的是考虑访问的用户数。
对于服务器应用来说,其典型特点是,高新建、高并发、低流量。如下图:
图上可以看出,在短短几分钟时间内,新建连接峰值达到6000个,并发超过12万,但峰值流量却只有不到300Mbps。
所以在服务器负载的选择中,首先要看负载产品的新建连接数。该指标就像一个瓶子的瓶口:瓶口越大,服务器所能处理的用户数就越高。至于带宽,反而变成次要考虑的内容。
不过,会很多工程师说,“我不知道应用场景里每秒新建连接数有多少啊?根本拿不到这个数据。”这是事实,很多时候,对业务的新建连接数,只有通过专业设备才能统计出来,很多用户是不知道当前业务的新建连接数量的。
这该怎么办呢?其实,这是可以推算出来的。
例如,虽然不知道新建连接数,但用户数是可以了解的。比如:某业务的用户数有1000人,根据业务性质估算出大概同时会有500人在线,再估计一下每个用户访问业务发起的连接数为20个(可以通过抓包查看),那最终该系统的负载设备新建连接选型就应该是:
(1000/2*20)*1.5 + 未来扩容用户数(1000/2*20) = 2.5W
也就是说,首先要选择一个新建数不低于2.5W/S的负载设备。在这个基础上,考虑下带宽就可以了。
需要注意的是:服务器负载要考虑负载设备上开启的业务,例如纯四层业务就只需要考虑四层新建,如果开启七层业务就要考虑七层新建。如果开启对应的HTTP的缓存、压缩,那就要考虑负载设备上开启相应功能带来的性能损耗。还有SSL卸载,如果有相应的业务开启,那么SSL新建、SSL吞吐的参数也要一并考虑。
按照上面的说法来来计算选择负载均衡产品就一点也不难了,如果真正了解了负载均衡产品性能参数的含义,做一个合适的负载均衡产品选型其实并不难,本文到这里就结束了,谢谢大家的阅读。希望能帮到大家,请继续关注脚本之家。