负载均衡器技术Nginx和F5的优缺点对比

负载均衡器技术Nginx和F5的优缺点对比,第1张

这是网上摘抄的文章,正好想了解一下负载均衡,看这篇文章写的比较易懂,就。。。。

对于数据流量过大的网络中,往往单一设备无法承担,需要多台设备进行数据分流,而负载均衡器就是用来将数据分流到多台设备的一个转发器。

目前有许多不同的负载均衡技术用以满足不同的应用需求,如软/硬件负载均衡、本地/全局负载均衡、更高网络层负载均衡,以及链路聚合技术。

腾讯、淘宝、新浪等大型门户及商业网站使用的是软负载均衡器Nginx,而农行用的是F5硬负载均衡器,这里就简单介绍下这两种技术:

一软件负载均衡解决方案

在一台服务器的操作系统上,安装一个附加软件来实现负载均衡,如Nginx负载均衡(我们管理系统平台使用的也是这款均衡器)。它的优点是基于特定环境、配置简单、使用灵活、成本低廉,可以满足大部分的负载均衡需求。

1什么是Nginx

Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。可以说Nginx是目前使用最为广泛的HTTP软负载均衡器,其将源代码以类BSD许可证的形式发布(商业友好),同时因高效的性能、稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名于业界。像腾讯、淘宝、新浪等大型门户及商业网站都采用Nginx进行HTTP网站的数据分流。

2Nginx的功能特点

a工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构;

bNginx对网络的依赖比较小;

cNginx安装和配置比较简单,测试起来比较方便;

d也可以承担高的负载压力且稳定,一般能支撑超过1万次的并发;

eNginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点,不过其中缺点就是不支持url来检测;

fNginx对请求的异步处理可以帮助节点服务器减轻负载;

gNginx能支持http和Email,这样就在适用范围上面小很多;

h不支持Session的保持、对Big request header的支持不是很好,另外默认的只有Round-robin和IP-hash两种负载均衡算法。

3Nginx的原理

Nginx采用的是反向代理技术,代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。反向代理负载均衡技术是把将来自internet上的连接请求以反向代理的方式动态地转发给内部网络上的多台服务器进行处理,从而达到负载均衡的目的。

二硬件负载均衡解决方案

直接在服务器和外部网络间安装负载均衡设备,这种设备我们通常称之为负载均衡器。由于专门的设备完成专门的任务,独立于操作系统,整体性能得到大量提高,加上多样化的负载均衡策略,智能化的流量管理,可达到最佳的负载均衡需求。一般而言,硬件负载均衡在功能、性能上优于软件方式,不过成本昂贵,比如最常见的就是F5负载均衡器。

1什么是F5 BIG-IP

F5负载均衡器是应用交付网络的全球领导者F5 Networks公司提供的一个负载均衡器专用设备,F5 BIG-IP LTM 的官方名称叫做本地流量管理器,可以做4-7层负载均衡,具有负载均衡、应用交换、会话交换、状态监控、智能网络地址转换、通用持续性、响应错误处理、IPv6网关、高级路由、智能端口镜像、SSL加速、智能HTTP压缩、TCP优化、第7层速率整形、内容缓冲、内容转换、连接加速、高速缓存、Cookie加密、选择性内容加密、应用攻击过滤、拒绝服务(DoS)攻击和SYN Flood保护、防火墙—包过滤、包消毒等功能。

2F5 BIG-IP用作HTTP负载均衡器的主要功能

aF5 BIG-IP提供12种灵活的算法将所有流量均衡的分配到各个服务器,而面对用户,只是一台虚拟服务器。

bF5 BIG-IP可以确认应用程序能否对请求返回对应的数据。假如F5 BIG-IP后面的某一台服务器发生服务停止、死机等故障,F5会检查出来并将该服务器标识为宕机,从而不将用户的访问请求传送到该台发生故障的服务器上。这样,只要其它的服务器正常,用户的访问就不会受到影响。宕机一旦修复,F5 BIG-IP就会自动查证应用已能对客户请求作出正确响应并恢复向该服务器传送。

cF5 BIG-IP具有动态Session的会话保持功能。

dF5 BIG-IP的iRules功能可以做HTTP内容过滤,根据不同的域名、URL,将访问请求传送到不同的服务器。

三方案优缺点对比

1基于硬件的方式(F5)

优点:能够直接通过智能交换机实现,处理能力更强,而且与系统无关,负载性能强更适用于一大堆设备、大访问量、简单应用。

缺点:成本高,除设备价格高昂,而且配置冗余,很难想象后面服务器做一个集群,但最关键的负载均衡设备却是单点配置;无法有效掌握服务器及应用状态。

硬件负载均衡,一般都不管实际系统与应用的状态,而只是从网络层来判断,所以有时候系统处理能力已经不行了,但网络可能还来 得及反应(这种情况非常典型,比如应用服务器后面内存已经占用很多,但还没有彻底不行,如果网络传输量不大就未必在网络层能反映出来)。

2基于软件的方式(Nginx)

优点:基于系统与应用的负载均衡,能够更好地根据系统与应用的状况来分配负载。这对于复杂应用是很重要的,性价比高,实际上如果几台服务器,用F5之类的硬件产品显得有些浪费,而用软件就要合算得多,因为服务器同时还可以跑应用做集群等。

缺点:负载能力受服务器本身性能的影响,性能越好,负载能力越大。

国内据说迪普和深信服做的不错,手头没有啥资料,就不介绍了。

基于包和基于流的负载分担的差异如下:

基于包的负载分担和基于流的负载分担是两种常用的网络负载分担技术。

基于包的负载分担是将数据包分散到多个服务器进行处理,通常是随机将数据包分配到可用的服务器中,每个服务器独立处理所分配到的数据包,适用于比较简单的网络环境。当同时发送多个数据包时,由于这些数据包被分配到不同的服务器,可能会导致多个数据包的先后顺序不同,从而导致数据包传输的不稳定。

基于流的负载分担是将整个数据流分配到同一个服务器进行处理,过对数据流进行识别和分类,将不同的数据流分配到不同的服务器中,保证了同一个数据流中的所有数据包均被分配到同一个服务器中进行处理。优点是可以有效避免数据包处理的不均衡,保证数据包传输的稳定性。

基于流的负载分担更适用于复杂的网络环境和对数据稳定性要求较高的场景,而基于包的负载分担则更适用于简单的网络环境和数据处理要求不高的场景。

基于包和基于流的负载分担的应用

基于包和基于流的负载均衡技术主要应用于同时接受大量请求的服务器集群中,实现服务器资源的合理分配,以提高服务器的负载能力和可靠性。

基于包的负载均衡应用:

1、HTTP/HTTPS服务:对于HTTP/HTTPS协议的服务,可以通过基于包的负载均衡实现请求的随机分配或轮询分配到不同的服务器上。

2、DNS服务:DNS服务也可以使用基于包的负载均衡,将请求分配到不同的DNS服务器上进行处理。

3、通讯服务:如VoIP、视频通讯等实时通信服务,通常会使用基于包的负载均衡技术,将请求分配到不同的服务器上进行处理,以确保服务的实时性和可靠性。

基于流的负载均衡应用:

1、数据库服务:对于数据库服务,通常会使用基于流的负载均衡技术,将同一个数据库访问流量分配到同一台服务器上进行处理,以确保数据的一致性和可靠性。

2、文件服务:对于文件服务,如FTP、SFTP等服务,也可以使用基于流的负载均衡技术,将同一个文件访问流量分配到同一台服务器上进行处理,以确保文件的完整性和可靠性。

3、视频流服务:对于视频流服务,通常会使用基于流的负载均衡技术,将同一视频访问流量分配到同一台服务器上进行处理,以确保视频的稳定性和可靠性。

服务器崩溃的几种原因第一:高并发流量或请求超过服务器承受力

无论是企业和个人在租用服务器的时候都会受到峰值承受限制的,一旦超过服务器的承受能力,就会导致服务器瘫痪,应用程序暂停,网站无法访问。服务器都是有峰值限制的,不可能承受无上限的并发能力。而造成服务器瘫痪的原因就是在同一段时间内,访问人数多,造成高流量的突进。超出了服务器的承受范围。这种例子我们经常可以看到,比如双11期间,很多公司为了应对双11的高流量,开启的紧急避险措施和大规模的服务器负载能力。还有春运期间,12306网站由于受到高并发的问题,也会频繁的出现崩溃。

第二:磁盘空间不足

导致服务器无法正常运行的原因也有可能是磁盘空间溢出导致的。企业的网络管理员应该实时关注磁盘的使用情况,并且要在规定的时间把磁盘储存的数据备份到另外的存储设备里面,确保数据无遗失,推荐相关阅读:哪些网站应该使用服务器呢?

服务器的磁盘大部分的资源都是被日志文件占用了,包括web服务器,数据库等日志信息都包括其中,以及应用程序服务器日志文件均与内存泄漏是同等的危害。我们可以采取措施保护我们的数据和日志文件,日志文件对应用程序进行异地存储。日志文件系统空间如果满了,则web服务器将自动被挂起,但是机器本身瘫痪和宕机的几率就会大大降低。

第三:服务器超载

连接web服务器都是用一个线程链接的,web服务器会在线程用过之后自动挂起,不会再未已链接的线程提供任何服务。如果我们用了负载机制,那么如果该服务器没有响应,则该服务器的负载则会自动的转移到其他web服务器上,这个操作会使服务器一个接一个的用光线程。这中操作可能会导致整个服务器机组被挂起,操作系统同时还有可能在不断接收新的链接,而我们的web服务器无法未其提供服务,致使服务器崩溃。

第四:服务器遭到恶意攻击

网络科技的不断发展同时,黑客的技术和渗透也是很强的,服务器和系统遭受到攻击已经是普遍存在的了。所有服务器都会面临这个问题,这个是无法预测的危险,我们只能实时做好安全防护,将被攻击的风险降至最低。

如果是web服务器,用到程序与数据库交互的服务器,您报出的硬件配置,负载6以内可以稳定运行,负载12以内可以正常运行,负载高于15运行吃力,负载18以上明显感觉变慢,更高可能就运行出错了。我指的是一般情况下。

如果是特殊情况,内部机制导致的服务宕机假死,那么负载值的呈现可能不高的,但是有问题的服务已经不能正常工作了,需要重启这个服务,一旦重启这个假死的服务进程,系统负载就会立刻随之升高,因为可能随着重启这个服务进程之后,服务突然能响应了堆积的并发请求,导致突发性升高,然后可能迅速降低负载。 所以负载是表示系统的综合运行载荷,不完全是cpu的占用率。 在linux系统里,几种情况都可以导致负载高:1系统进程占用时间过长 2应用程序的进程占用cpu时间过长 3磁盘读写I/O的进程占用cpu的时间过长。 是否稳定运行,不能单单以负载值作为评估标准,只能作为大概的参考。负载高的原因要从我之前说的3个原因方面去查,查到了问题后,就可以改进改善,从而实现稳定运行。

其实有很多特例的,据我所知,某些大型的知名网站服务器原来采用lamp架构的,在负载100以上都能正常运行,这么高的负载其实在某些情况下特别是大规模并发情况下,只要把控好软硬件的协作关系,照样可以正常运作。

我从事linux网站运维数年了,希望我的回答你能满意。

1确定需要压测你网站的什么业务。

2根据业务录制测试脚本,选择web协议

3脚本录制完毕后,需要对脚本进行参数化,设置判断事务成功条件,设置集合点等

4脚本优化完毕后,打开controller进行压力测试,压测的时候开始用少量的并发并逐渐增大的方式。

5在压测的同时设置需要监控的服务器资源,数据库、英语服务器等资源情况

如何判断你服务器的最大承受能力?

当你在压测的过程中,比如当并发达到50后,发现系统资源不足,应立即停止压测,然后并发数减少到40,直到你监控到的所以资源都在正常范围,则此时的并发就是你需要的结果。

均衡负载是当网吧内有多台无盘(系统虚拟盘) 服务器时,将客户机平均分配

到每台服务器上。

而热备功能是为每一台开启热备的客户机同时提供2 台服务器为客户机服

务,因此会翻倍增加服务器压力,翻倍降低服务器负载能力。

例①:2 台服务器,300 台客户机

均衡负载的效果:每台服务器带机量为300/2=150 台/服务器,假设单台服

务器的负载能力为150 台,那么这个负载情况就是刚刚好,不会卡。

热备功能的效果:每台服务器的负载能力变成2/2=1 台,单台服务器带机量

为300/1=300 台,假设单台服务器的负载能力为150 台,那么当你开启热备后就

是严重超载,极有可能出现卡机现象。

例②:3 台服务器,300 台客户机

均衡负载的效果:每台服务器的带机数量为300/3=100 台/服务器,假设单

台服务器的负载能力为150 台,那么这个负载情况就是非常轻松,不会卡。

热备功能的效果:每台服务器的负载能力变成3/2=15 台,单台服务器带机

量为300/15=200 台,假设单台服务器的负载能力为150 台,那么这个负载情况

就是严重超载了,极有可能出现卡机现象。

当两个功能同时开启后,均衡负载功能会被热备功能的效果所覆盖,所以已

经观察不出二者的差别了。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 负载均衡器技术Nginx和F5的优缺点对比

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情