云计算时代,负载均衡如何优化才能让性能起飞?

  • 时间:
  • 浏览:10

以杭州集群为例,分为可用区A和可用区B,其后边都会全量的转发规则,大伙儿都可不里能 设置某个vip,它的流量只通过路由器1来访问其中的某个集群。当整个的可用区趋于稳定故障时,它会秒级的切换到原先路由器上,它的请求就会落在备用的可用区后边,原先当集群趋于稳定大规模故障的原先,vip的可用性我过多 受到影响。

硬件升级:从10G网卡升级到40G网卡,集中硬件资源、缩小集群的数量,配备调慢的CPU、更大的内存。

软件架构:从内核态切换到DPDK架构,转移到用户态做网卡的轮询,报文的转发。

连接级的高可用通过Session同步来实现,LVS后边每一条转发的连接都会用Session来记录原地址、目的地址等相关信息,每台LVS后边都都可不里能 获得所以LVS后边的Session,原先当一台LVS宕机原先,其流量就会分配到所以LVS后边;第五个优化是单机高可用,每台LVS1个多多多多物理网口,双上联了一台交换机,从网络路径上提供了1个多多多冗余,每台交换机后边的路由器都会vip优先级,当一台路由器故障时它会根据优先级切换到另外一台路由器上,实现单机高可用;第1个多多多优化是集群高可用,即热升级无感知、单机故障无感知、交换机故障无感知;第五个优化是通过主备双SITE、秒级切换实现AZ高可用;第五个优化是安全防护,使用SynProxy防御快速校验TCP的三次握手抵御攻击,减少CPU和内存的损耗;最后1个多多多实现高可用的途径是健康检查,及时剔除异常RS,保证服务高可用。

每个 CPU 在查询连接(session) 时,也是并行处里,大大提高了转发性能。

硬件负载均衡器是1个多多多重要的角色。十年原先,负载均衡大次责是由负载均衡器来实现的,最出名的厂商是F5。负载均衡器的优点是:有专门的团队来提供开发和维护,性能比较好,相对软件负载均衡稳定可靠些。缺点是:费用昂贵,难以拓展功能和容量,灵活性差。

SLB负载均衡的“双十一”提出了所以有大问题:怎么实现快速部署?怎么提供足够的性能?怎么提供高可用的服务?怎么提供足够的容量?

控制管理的并行化,修改了LVS的源码,原生的LVS本地不到一份配置是全局的,每个CPU访问它都会去加锁,大伙儿的优化是在每个CPU上都会全量的转发配置的部署,原先,每个CPU查询买车人的资源的原先是不都可不里能 上锁的,大大提高了处里的波特率。

以下是精彩内容分发:

在云计算时代,大伙儿输出计算能力会像水和电一样方便。提到云计算时,大伙儿因此更多会想到计算相关的云产品,比如云主机ECS、关系型数据库RDS、大数据处里平台ODPS,但着实负载均衡在云计算后边的地位是至关重要的,因此它是网络流量的入口。互联网时代,计算资源、服务器、手机、电脑、物联网设备都可不里能 网络去连在同时。云计算时代,分布式计算往往原困1个多多多集群后边有所以有计算节点,缘何保证服务的请求会均匀分布在计算节点后边同时对外提供服务呢?这是负载均衡都可不里能 处里的1个多多多课题。

负载均衡技术因此作为了全集团的流量入口。第一,它是弹性计算的流量入口,服务阿里云的公有云用户,所含了大中小型网站、游戏客户、APP服务端,还有专有云,包括金融和政府部门。第五个服务的对象是云产品,比如RDS、OSS、高防等都用到了SLB的负载均衡技术,提供云计算服务的流量入口。第三,为集团VIP统一接入平台提供负载均衡服务作为电商平台的流量入口。第四,蚂蚁金服使用负载均衡服务作为支付宝、网上银行交易平台的流量入口。

Nginx跑在7层网络后边,它是轻量级的Web服务器,优势在于它有很好的网络适应性,只要后端的路由器都可不里能 连通就都可不里能 通过Nginx做HTTP的负载均衡,它支持URL、正则表达式等高级逻辑,同样是开源的。

每个集群因此有4台因此8台LVS作为转发服务器,每台服务器后边会有双网口,分别上联两台交换机,两台交换机又分别上联两台路由器,原先网络路径上的冗余就变得非常大,任意一条路径断掉不影响其性能。

PDF下载:点此进入

LVS(Linux Virtual Server)跑在网络层的第四层,TCP因此UDP所以层,它是开源的,已集成在Linux内核中,其可伸缩,都可不里能 弹性部署,非常可靠。

本文根据阿里云飞天八部金帅在大流量高并发互联网应用实践在线峰会上的题为《双十一技术揭秘——负载均衡性能优化演进之路》的演讲分发而成。

负载均衡是指通过五种生活负载分担技术,将内部管理发送来的请求均匀分配到对称特征中的某一台服务器上,而接收到请求的服务器独立地公布客户的请求。通俗的讲,所以我当访问请求变多时,都可不里能 更多的服务器来响应请求、对外提供服务,这原先都可不里能 1个多多多多负载均衡器通过一定规则把请求分发在多台服务器上,横向拓展了服务的性能。负载均衡都可不里能 通过硬件因此软件来实现,传统的负载均衡还都可不里能 通过DNS实现,因此DNS的时效性不好。

首先都可不里能 通过DNS所以传统的模式在1个多多多域名下面挂两条以上的vip,其中一条vip放在杭州集群,一条vip放在青岛集群,进到杭州集群的流量都会1个多多多可用区,正常情况表下会落到某个可用区后边,而另外的可用区是1个多多多备份,当某个可用区变得不可用时,会在杭州集群内进行切换,实现了AZ的高可用。某1个多多多可用区后边,某一台LVS宕机时,那么 所以三台LVS就会提供服务。整体上实现异地多活,同城多活的架构。

当CPU分开工作时,缘何保证同一条流的入方向和出方向都落在同1个多多多CPU上呢?原先提到的FULLNAT有两条流,一条是client访问vip,另一条是从RS访问local地址,这两条流采用了硬件的1个多多多特征来保证大伙落在同1个多多多CPU上,client -> vip这条流采用了硬件的RSS技术,通过哈希自动挑选CPU,通过网卡队列CPU中断的绑定使得关系固定下来,当它处里完发送到后端后,RS -> localaddr回来的入包的源地址是后端的服务器,目的地址是本地地址,此时通过 flow-director 特征对本地地址设置规则来保证分流的效果,即入包和出包的规则一致, 命中同1个多多多 CPU 进行处里。

直播视频:点此进入

怎么对负载均衡进行高性能的优化?首先是FULLNAT技术,它是LVS的1个多多多转发模式,此优化的目的是为了摆脱开源LVS对网络部署的限制;另外的1个多多多优化点是二层转发,LVS是Linux内核后边的1个多多多模块,都可不里能 经过Linux传统的协议栈,性能非常低,二层转发都可不里能 通过记录MAC地址绕过Linux路由表,提升性能;第1个多多多比较大的优化是CPU的并行化,都可不里能 让每个 CPU 并行的处里报文的转发;第五个优化是FASTPATH,完整版旁路了Linux协议栈,直接将报文送到网卡,性能达到硬件线速;第五个优化是CPU指令的优化,因此FULLNAT都可不里能 对报文做所以修改,大伙儿使用CPU专门对Crc32定制的计算指令会大大优化计算校验的性能;最后1个多多多优化点充分利用了现在服务器NUMA的特征,NUMA是计算机的五种生活架构,在不同的CPU后边访问特定内存因此系统资源会比较快,通过NUMA的特征来分配本地内存都可不里能 达到很大的性能提升。

2015年的“双十一”第一次有阿里云参与进来,是云上的“双十一”。“双十一”的阿里云主要有以下有几次次责:阿里云三大件,即云服务器、负载均衡、RDS云数据库,这三大件是云计算的基础组件。

只经过网卡层和驱动层,大大提升报文的转发性能。

SLB着实所以我基于前面介绍的LVS和Nginx来实现的,分为四层负载均衡和七层负载均衡。如图所示,访问流量会经过公网的入口,进入某个可用区,每个可用区又会有多个机房,每个机房又会1个多多多多LVS的集群和1个多多多Tengine的集群来实现四层负载均衡和七层负载均衡。

高可用:计划做跨AZ的Session同步,即使AZ之间的切换也让用户无感知,保证原有连接的持续;网络的全链路监控包括区域链路上报文转发的波特率、丢包率、重传率等给客户提供更全面的网络质量评估;vip的主动探测帮助客户监控vip否是是可用,因此把数据展示给用户;SLA,关于用户使用资源上的限制和保证,做好公有云用户的资源隔离。