服务器调数据卡顿?
500
2024-04-27
1:找分区或目录同步软件,某台服务器改动了自动把修改应用到别的服务器,比如红旗的HA。
2:换种建服务器的思路,后台用一台独立的服务器做数据库和文件服务器,用来存放数据库和上传的文件,另外的做负载均衡运行服务器,把不需要变动的网页程序放上面。
你可以试试在一台服务器做WEB和数据库,另外一台做WEB,两个WEB都连接那一个数据库,这样两个WEB内容就是同步的了,然后两台WEB间做负载,下边是我COPY的
网络负载均衡可以让客户端用一个逻辑Internet名称和虚拟IP地址(又称群集IP地址)访问群集,同时保留每台计算机各自的名称。下面,我们将在两台安装Windows Server 2003的普通计算机上,介绍网络负载均衡的实现及应用。
这两台计算机中,一台计算机名称为A,IP地址为192.168.0.7;另一台名为B,IP地址为192.168.0.8。规划网络负载均衡专用虚拟IP地址为192.168.0.9。当正式应用时,客户机只需要使用IP地址192.168.0.9来访问服务器,网络服务均衡会根据每台服务器的负载情况自动选择192.168.0.7或者192.168.0.8对外提供服务。具体实现过程如下:
在实现网络负载均衡的每一台计算机上,只能安装TCP/IP协议,不要安装任何其他的协议(如IPX协议或者NetBEUI协议),这可以从“网络连接属性”中查看。
第一步,分别以管理员身份登录A机和B机,打开两台机的“本地连接”属性界面,勾选“此连接使用下列项目”中的“负载均衡”项并进入“属性”对话框,将IP地址都设为192.168.0.9(即负载均衡专用IP),将子网掩码设置为255.255.255.0;
第二步,分别进入A机和B机的“Internet协议(TCP/IP)”属性设置界面,点击“高级”按钮后,在弹出的“高级TCP/IP设置”界面中添加IP地址192.168.0.9和子网掩码设置为255.255.255.0。
第三步,退出两台计算机的“本地连接属性”窗口,耐心等一会儿让系统完成设置。
以后,如果这两台服务器不能满足需求,可以按以上步骤添加第三台、第四台计算机到网络负载均衡系统中以满足要求。
用IIS服务验证网络负载均衡
网络负载均衡配置好后,为了实现某项具体的服务,需要在网络负载均衡的计算机上安装相应的服务。例如,为了实现IIS网站的负载均衡,需要在相应的网络负载均衡服务器上安装IIS服务。为了让每个用户在通过网络负载均衡访问到不同的计算机时,能够访问到一致的数据,需要在网络负载均衡的每台计算机上保持数据的一致性。举例来说,实现了两个节点的IIS的网络负载均衡,为了保证两个网站内容的一致性,除了这两个IIS服务器的配置相同外,相应的网站数据必须一致。
为了检验网络负载均衡,我们可以通过IIS来进行验证,其他的一些应用如终端服务、Windows Media服务与IIS的应用与之相类似。在其他计算机上的IE浏览器中键入192.168.0.9,根据网络的负载,网络负载均衡会自动转发到A机或B 机。为了验证效果,你可以在浏览的时候,拔掉第一台计算机的网线或拔掉第二台机器的网线,将会发现浏览到的将是不同内容。当然,我们在测试的时候,为了验证网络负载均衡的效果,把两个网站设置成不一致的内容,而在正式应用的时候,网络负载均衡群集的每个节点计算机的内容将是一致的,这样不管使用哪一个节点响应,都能保证访问的内容是一致的。
一般用的就用简单的轮询就好了
调度算法
静态方法:仅根据算法本身实现调度;实现起点公平,不管服务器当前处理多少请求,分配的数量一致
动态方法:根据算法及后端RS当前的负载状况实现调度;不管以前分了多少,只看分配的结果是不是公平
静态调度算法(static Schedu)(4种):
(1)rr (Round Robin) :轮叫,轮询
说明:轮询调度算法的原理是每一次把来自用户的请求轮流分配给内部中的服务器,从1开始,直到N(内部服务器个数),然后重新开始循环。算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。缺点:是不考虑每台服务器的处理能力。
(2)wrr (Weight Round Robin) :加权轮询(以权重之间的比例实现在各主机之间进行调度)
说明:由于每台服务器的配置、安装的业务应用等不同,其处理能力会不一样。所以,我们根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求。
(3)sh (Source Hashing) : 源地址hash实现会话绑定sessionaffinity
说明:简单的说就是有将同一客户端的请求发给同一个real server,源地址散列调度算法正好与目标地址散列调度算法相反,它根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的并且没有超负荷,将请求发送到该服务器,否则返回空。它采用的散列函数与目标地址散列调度算法的相同。它的算法流程与目标地址散列调度算法的基本相似,除了将请求的目标IP地址换成请求的源IP地址。
(4)dh : (Destination Hashing) : 目标地址hash
说明:将同样的请求发送给同一个server,一般用于缓存服务器,简单的说,LB集群后面又加了一层,在LB与realserver之间加了一层缓存服务器,当一个客户端请求一个页面时,LB发给cache1,当第二个客户端请求同样的页面时,LB还是发给cache1,这就是我们所说的,将同样的请求发给同一个server,来提高缓存的命中率。目标地址散列调度算法也是针对目标IP地址的负载均衡,它是一种静态映射算法,通过一个散列(Hash)函数将一个目标IP地址映射到一台服务器。目标地址散列调度算法先根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
动态调度算法(dynamic Schedu)(6种):
(1)lc (Least-Connection Scheduling): 最少连接
说明:最少连接调度算法是把新的连接请求分配到当前连接数最小的服务器,最小连接调度是一种动态调度短算法,它通过服务器当前所活跃的连接数来估计服务器的负载均衡,调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接数加1,当连接中止或超时,其连接数减一,在系统实现时,我们也引入当服务器的权值为0时,表示该服务器不可用而不被调度。此算法忽略了服务器的性能问题,有的服务器性能好,有的服务器性能差,通过加权重来区分性能,所以有了下面算法wlc。
简单算法:active*256+inactive (谁的小,挑谁)
(2)wlc (Weighted Least-Connection Scheduling):加权最少连接
加权最小连接调度算法是最小连接调度的超集,各个服务器用相应的权值表示其处理性能。服务器的缺省权值为1,系统管理员可以动态地设置服务器的权限,加权最小连接调度在调度新连接时尽可能使服务器的已建立连接数和其权值成比例。由于服务器的性能不同,我们给性能相对好的服务器,加大权重,即会接收到更多的请求。
简单算法:(active*256+inactive)/weight(谁的小,挑谁)
(3)sed (shortest expected delay scheduling):最少期望延迟
说明:不考虑非活动连接,谁的权重大,我们优先选择权重大的服务器来接收请求,但会出现问题,就是权重比较大的服务器会很忙,但权重相对较小的服务器很闲,甚至会接收不到请求,所以便有了下面的算法nq。
基于wlc算法,简单算法:(active+1)*256/weight (谁的小选谁)
(4).nq (Never Queue Scheduling): 永不排队
说明:在上面我们说明了,由于某台服务器的权重较小,比较空闲,甚至接收不到请求,而权重大的服务器会很忙,所此算法是sed改进,就是说不管你的权重多大都会被分配到请求。简单说,无需队列,如果有台real server的连接数为0就直接分配过去,不需要在进行sed运算。
(5).LBLC(Locality-Based Least Connections) :基于局部性的最少连接
说明:基于局部性的最少连接算法是针对请求报文的目标IP地址的负载均衡调度,主要用于Cache集群系统,因为Cache集群中客户请求报文的目标IP地址是变化的,这里假设任何后端服务器都可以处理任何请求,算法的设计目标在服务器的负载基本平衡的情况下,将相同的目标IP地址的请求调度到同一个台服务器,来提高服务器的访问局部性和主存Cache命中率,从而调整整个集群系统的处理能力。
(6).LBLCR(Locality-Based Least Connections with Replication) :基于局部性的带复制功能的最少连接
说明:基于局部性的带复制功能的最少连接调度算法也是针对目标IP地址的负载均衡,该算法根据请求的目标IP地址找出该目标IP地 址对应的服务器组,按“最小连接”原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器;若服务器超载,则按“最小连接”原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除, 以降低复制的程度。
随着网站、应用访问量的增加,一台服务器已经不能满足应用的需求,而需要多台服务器集群,这时就会用到负载均衡
它的好处
负载均衡优化了访问请求在服务器组之间的分配,消除了服务器之间的负载不平衡,从而提高了系统的反应速度与总体性能;
负载均衡可以对服务器的运行状况进行监控,及时发现运行异常的服务器,并将访问请求转移到其它可以正常工作的服务器上,从而提高服务器组的可靠性采用了负均衡器器以后,可以根据业务量的发展情况灵活增加服务器,系统的扩展能力得到提高,同时简化了管理。
维盟多WAN口路由器负载均衡是根据多条线路接入实际流量,合理的平均分配每个线路的流量。 假如有两条线路接入的情况下,且每线路都是50M的,选择会话数模式,负载范围是100000,那么两条线路均衡范围都设置在50000,这样两条线路的资源会自动平均分配。
我看别人回复的都不太实用,我来回复你这个问题,
负载均衡有如下几个选择
一、DNS 最前端的负载均衡,可以根据地域,网路配置域名转向不同的IP
二、F5,专业的网络负载均衡硬件设备,可配置四层,七层负载均衡,根据IP,session等多种均衡策略,可配置ssl证书等,就是死贵
三:ELB/SLB 公有云提供的负载均衡服务,不同的提供商,不同的名称,大都叫XLB,功能类似F5,便宜,不用自己管理。
四:LVS linux内核自带的负载均衡能力,四层负载均衡,通过廉价的设备集群组成强大的负载均衡能力
五、nginx 著名的开源软件,常用于http反向代理,七层负载均衡,配置灵活,附加功能多。
◆应用服务器的负载均衡技术 如果将客户端的负载均衡层移植到某一个中间平台,形成三层结构,则客户端应用可以不需要做特殊的修改,透明的通过中间层应用服务器将请求均衡到相应的服务结点。比较常见的实现手段就是反向代理技术。使用反向代理服务器,可以将请求均匀转发给多台服务器,或者直接将缓存的数据返回客户端,这样的加速模式在一定程度上可以提升静态网页的访问速度,从而达到负载均衡的目的。 使用反向代理的好处是,可以将负载均衡和代理服务器的高速缓存技术结合在一起,提供有益的性能。然而它本身也存在一些问题,首先就是必须为每一种服务都专门开发一个反向代理服务器,这就不是一个轻松的任务。 反向代理服务器本身虽然可以达到很高效率,但是针对每一次代理,代理服务器就必须维护两个连接,一个对外的连接,一个对内的连接,因此对于特别高的连接请求,代理服务器的负载也就非常之大。反向代理能够执行针对应用协议而优化的负载均衡策略,每次仅访问最空闲的内部服务器来提供服务。但是随着并发连接数量的增加,代理服务器本身的负载也变得非常大,最后反向代理服务器本身会成为服务的瓶颈。 ◆基于域名系统的负载均衡 NCSA的可扩展Web是最早使用动态DNS轮询技术的web系统。在DNS中为多个地址配置同一个名字,因而查询这个名字的客户机将得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。在很多知名的web站点都使用了这个技术:包括早期的yahoo站点、163等。动态DNS轮询实现起来简单,无需复杂的配置和管理,一般支持bind8.2以上的类unix系统都能够运行,因此广为使用。 DNS负载均衡是一种简单而有效的方法,但是存在不少问题。 首先域名服务器无法知道服务结点是否有效,如果服务结点失效,余名系统依然会将域名解析到该节点上,造成用户访问失效。 其次,由于DNS的数据刷新时间TTL(Time to LIVE)标志,一旦超过这个TTL,其他DNS服务器就需要和这个服务器交互,以重新获得地址数据,就有可能获得不同IP地址。因此为了使地址能随机分配,就应使TTL尽量短,不同地方的DNS服务器能更新对应的地址,达到随机获得地址。然而将TTL设置得过短,将使DNS流量大增,而造成额外的网络问题。 最后,它不能区分服务器的差异,也不能反映服务器的当前运行状态。当使用DNS负载均衡的时候,必须尽量保证不同的客户计算机能均匀获得不同的地址。例如,用户A可能只是浏览几个网页,而用户B可能进行着大量的下载,由于域名系统没有合适的负载策略,仅仅是简单的轮流均衡,很容易将用户A的请求发往负载轻的站点,而将B的请求发往负载已经很重的站点。因此,在动态平衡特性上,动态DNS轮询的效果并不理想。 ◆高层协议内容交换技术 除了上述的几种负载均衡方式之外,还有在协议内部支持负载均衡能力的技术,即URL交换或七层交换,提供了一种对访问流量的高层控制方式。Web内容交换技术检查所有的HTTP报头,根据报头内的信息来执行负载均衡的决策。例如可以根据这些信息来确定如何为个人主页和图像数据等内容提供服务,常见的有HTTP协议中的重定向能力等。 HTTP运行于TCP连接的最高层。客户端通过恒定的端口号80的TCP服务直接连接到服务器,然后通过TCP连接向服务器端发送一个HTTP请求。协议交换根据内容策略来控制负载,而不是根据TCP端口号,所以不会造成访问流量的滞留。 由于负载平衡设备要把进入的请求分配给多个服务器,因此,它只能在TCP连接时建立,且HTTP请求通过后才能确定如何进行负载的平衡。当一个网站的点击率达到每秒上百甚至上千次时,TCP连接、HTTP报头信息的分析以及进程的时延已经变得很重要了,要尽一切可能提高这几各部份的性能。 在HTTP请求和报头中有很多对负载平衡有用的信息。我们可以从这些信息中获知客户端所请求的URL和网页,利用这个信息,负载平衡设备就可以将所有的图像请求引导到一个图像服务器,或者根据URL的数据库查询内容调用CGI程序,将请求引导到一个专用的高性能数据库服务器。 如果网络管理员熟悉内容交换技术,他可以根据HTTP报头的cookie字段来使用Web内容交换技术改善对特定客户的服务,如果能从HTTP请求中找到一些规律,还可以充分利用它作出各种决策。除了TCP连接表的问题外,如何查找合适的HTTP报头信息以及作出负载平衡决策的过程,是影响Web内容交换技术性能的重要问题。如果Web服务器已经为图像服务、SSL对话、数据库事务服务之类的特殊功能进行了优化,那么,采用这个层次的流量控制将可以提高网络的性能。 ◆网络接入协议交换 大型的网络一般都是由大量专用技术设备组成的,如包括防火墙、路由器、第3、4层交换机、负载均衡设备、缓冲服务器和Web服务器等。如何将这些技术设备有机地组合在一起,是一个直接影响到网络性能的关键性问题。现在许多交换机提供第四层交换功能,对外提供一个一致的IP地址,并映射为多个内部IP地址,对每次TCP和UDP连接请求,根据其端口号,按照即定的策略动态选择一个内部地址,将数据包转发到该地址上,达到负载均衡的目的
upstream 通过扩展健康检测插件可以剔除挂掉的服务实例,让其不参与负载均衡
负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】。
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
一.负载均衡原理
系统的扩展可分为纵向(垂直)扩展和横向(水平)扩展。纵向扩展,是从单机的角度通过增加硬件处理能力,比如CPU处理能力,内存容量,磁盘等方面,实现服务器处理能力的提升,不能满足大型分布式系统(网站),大流量,高并发,海量数据的问题。因此需要采用横向扩展的方式,通过添加机器来满足大型网站服务的处理能力。比如:一台机器不能满足,则增加两台或者多台机器,共同承担访问压力。
l 应用集群:将同一应用部署到多台机器上,组成处理集群,接收负载均衡设备分发的请求,进行处理,并返回相应数据。
l 负载均衡设备:将用户访问的请求,根据负载均衡算法,分发到集群中的一台处理服务器。(一种把网络请求分散到一个服务器集群中的可用服务器上去的设备)
负载均衡的作用(解决的问题):
1.解决并发压力,提高应用处理性能(增加吞吐量,加强网络处理能力);
2.提供故障转移,实现高可用;
3.通过添加或减少服务器数量,提供网站伸缩性(扩展性);
4.安全防护;(负载均衡设备上做一些过滤,黑白名单等处理)
二. 负载均衡分类
根据实现技术不同,可分为DNS负载均衡,HTTP负载均衡,IP负载均衡,链路层负载均衡等。
2.1 DNS负载均衡
最早的负载均衡技术,利用域名解析实现负载均衡,在DNS服务器,配置多个A记录,这些A记录对应的服务器构成集群。大型网站总是部分使用DNS解析,作为第一级负载均衡。
优点
1>. 使用简单:负载均衡工作,交给DNS服务器处理,省掉了负载均衡服务器维护的麻烦;
2>. 提高性能:可以支持基于地址的域名解析,解析成距离用户最近的服务器地址,可以加快访问速度,改善性能;
缺点
1>. 可用性差:DNS解析是多级解析,新增/修改DNS后,解析时间较长;解析过程中,用户访问网站将失败;
2>. 扩展性低:DNS负载均衡的控制权在域名商那里,无法对其做更多的改善和扩展;
3>.SPAN>
实践建议
将DNS作为第一级负载均衡,A记录对应着内部负载均衡的IP地址,通过内部负载均衡将请求分发到真实的Web服务器上。一般用于互联网公司,复杂的业务系统不合适使用。
2.2 IP负载均衡
在网络层通过修改请求目标地址进行负载均衡。
用户请求数据包,到达负载均衡服务器后,负载均衡服务器在操作系统内核进程获取网络数据包,根据负载均衡算法得到一台真实服务器地址,然后将请求目的地址修改为,获得的真实ip地址,不需要经过用户进程处理。
真实服务器处理完成后,响应数据包回到负载均衡服务器,负载均衡服务器,再将数据包源地址修改为自身的ip地址,发送给用户浏览器。
IP负载均衡,真实物理服务器返回给负载均衡服务器,存在两种方式:(1)负载均衡服务器在修改目的ip地址的同时修改源地址。将数据包源地址设为自身盘,即源地址转换(snat)。(2)将负载均衡服务器同时作为真实物理服务器集群的网关服务器。
优点:在内核进程完成数据分发,比在应用层分发性能更好;
缺点:所有请求响应都需要经过负载均衡服务器,集群最大吞吐量受限于负载均衡服务器网卡带宽;
2.4 链路层负载均衡
在通信协议的数据链路层修改mac地址,进行负载均衡。
数据分发时,不修改ip地址,指修改目标mac地址,配置真实物理服务器集群所有机器虚拟ip和负载均衡服务器ip地址一致,达到不修改数据包的源地址和目标地址,进行数据分发的目的。
实际处理服务器ip和数据请求目的ip一致,不需要经过负载均衡服务器进行地址转换,可将响应数据包直接返回给用户浏览器,避免负载均衡服务器网卡带宽成为瓶颈。也称为直接路由模式(DR模式)。
优点:性能好;
缺点:配置复杂;
实践建议:DR模式是目前使用最广泛的一种负载均衡方式。
2.5混合型负载均衡
由于多个服务器群内硬件设备、各自的规模、提供的服务等的差异,可以考虑给每个服务器群采用最合适的负载均衡方式,然后又在这多个服务器群间再一次负载均衡或群集起来以一个整体向外界提供服务(即把这多个服务器群当做一个新的服务器群),从而达到最佳的性能。将这种方式称之为混合型负载均衡。
此种方式有时也用于单台均衡设备的性能不能满足大量连接请求的情况下。是目前大型互联网公司,普遍使用的方式。
以上模式适合有动静分离的场景,反向代理服务器(集群)可以起到缓存和动态请求分发的作用,当时静态资源缓存在代理服务器时,则直接返回到浏览器。如果动态页面则请求后面的应用负载均衡(应用集群)。
VRRP可以通过将多个设备配置成一个虚拟路由器来实现负载均衡。在这个虚拟路由器中,只有一个设备扮演活动路由器的角色,而其他设备则担任备份路由器的角色。
当活动路由器宕机或者网络故障时,备份路由器可以接替它的工作,实现高可用性。
同时,可以通过配置不同的虚拟路由器来实现负载均衡,将不同的流量分配给不同的虚拟路由器处理,从而提高网络的性能和可靠性。VRRP是一种简单而有效的负载均衡技术,广泛应用于企业网络和互联网服务提供商中。
Nginx负载均衡与可用性检查
在业界,一直流传这样一句话:Nginx抗并发能力强!为什么Nginx抗并发能力强?原因是使用了非阻塞、异步传输
阻塞:如apache代理tomcat时,apache开启10个进程,同时处理着10个请求,在tomcat没有返回给apache结果时,apache是不会处理用户发出的第11个请求
非阻塞:如nginx代理tomcat时,nginx开启1000个并发,同时处理着1000个请求,在tomcat没有返回给nginx结果时,nginx会依然处理后面用户发给的请求