负载均衡:
负载均衡是把一个可并行计算的程序的任务(或者什么东西)分配到分布式系统的各个cpu上,从而最小化最终完成时间的问题。
LB 主要考虑2方面的耗费:
total_cost = computation_cost + communication_cost.
似乎这两个耗费之间存在矛盾,如果将负载都分配到一个cpu上,那么通信耗费肯定会很少,然而总的完成时间会加长。
如果将负载均匀的分布到各cpu上,通信耗费又会增加。所以,要折衷考虑。
LB 分静态LB 和动态LB算法。
(1)静态LB
是在编译程序阶段,就固定好了确切的分配策略,在执行之前,将任务分配给个系统。在执行过程中,不存在计算机之间的通信
(2)动态LB
是在执行过程中,根据分布式系统的运行情况,分配任务。
LVS DR 工作原理
记录一下LVS中DR模式的运行过程
一个主LDSERVER , 可以有自己单独的ip(192.168.1.1),vip 设置为 vip1(192.168.1.100)
一个备份LDSERVER, 自己的ip(192.168.1.2)vip当然也是vip1(利用keepalived检测,出错时会接管)
几台REAL_SERVER,这些real server必须在一个同一个物理连接上,也就是通过交换机直接连接
假设有2台real server,
1的ip为 192.168.1.3
2号机的ip为 192.168.1.4
怎样添加共享的vip呢?将1,2号机上的lo上添加一个 lo:0 它的ip是vip, 广播也是vip
那么这个包的流程是怎样处理呢?
1)用户请求dns得到LDserver的ip,为什么?因为只有ldserver提供icmp ping的应答,其他real server虽然也有此vip,但是配置时都关掉了应答,所以自然请求包会首先到达LDserver。
2)LDserver根据规则将请求包的目的mac地址写成一个realserver的mac地址,发出去
3)realserver接到该包后(在一个物理连接上,如果不是自己的数据包,根据mac地址会丢掉)向上层递交,然后自己的一个lo:中的ip正好是目的ip,那就可以处理该包了,并且直接给用户应答的时候也不用修改源ip,因为自己有一个lo的ip就是那个vip。这个地方被自己困住了很久。
从而LD上只负责映射和记录映射,并不保存链接,从而不会受单台pc的连接数的限制,瓶颈上升到带宽和单位时间内可以记录映射,查找映射的计算上。
分享到:
相关推荐
this doucment is a document for load balancing for open sources,important open source software LVS,HAProxy,NETScale and F5 .use this tools to make a balanc framework in linux kernel os.
fpga上实现的动平衡检测模块,只需要一编码器就可以
在Android开发中,自定义View是一项重要的技能,它允许开发者创造出独特且富有创意的用户界面。"EQBalanceView跟随手指的小球"是一个很好的实例,展示了如何利用自定义View实现一个动态交互的效果,让用户可以通过...
UCI Machine Learning Repository 是一个广泛使用的资源库,包含多种用于学术研究和数据分析的公开数据集。在这个名为 "UCI三个数据集简单处理后.zip" 的压缩包中,我们找到了三个预处理过的数据集:Car、Balance_...
Hopping-in-Three-...单腿跳跃机器人,参考marc raibert的legged robots that banlance 使用: 在webots2019b上打开Hopping in Three Dimensions\worlds\empty文件 电脑键盘 ↑ ↓ ← → 用于改变机器人跳跃方向。
ERP Fiscanl Report - Banlance Sheet
IIF((banlance = 0 OR amount = 'Alls'), 0, sum_m * rake / 100) AS mem_ds, IIF((banlance = 0 OR amount = 'Alls'), 0, SWITCH( result = 0, -sum_m, result > 0, IIF(sort = 'likst', (sum_m / count_l * ...
在这个场景中,"banlance-transfer接口"可能是指用于处理余额转账请求的接口,该接口可能是智能合约的一部分,允许网络中的参与者发起转账操作。 在Hyperledger Fabric中,多通道是一个关键特性。通道是一种隐私...