📜  分布式系统中的负载分担方法

📅  最后修改于: 2022-05-13 01:56:17.734000             🧑  作者: Mango

分布式系统中的负载分担方法

负载共享基本上表示转发路由器以共享流量转发的过程,如果路由表中存在多条路径的话。如果路径相等,则转发过程将遵循负载分担算法。在负载分担系统中,所有节点分担整体工作负载,部分节点的故障增加了其余节点的压力。负载共享方法确保没有节点保持空闲,以便每个节点都可以共享负载。

例如,假设有两个不同带宽的服务器连接,分别为 500Mbps 和另一个 250Mbps。让,有2个数据包。不是将 2 个数据包发送到同一连接,即 500Mbps,而是将 1 个数据包转发到 500Mbps,另一个数据包转发到 250Mbps 连接。这里的目标不是在两个连接中使用相同数量的带宽,而是共享负载,以便每个连接都可以在没有任何流量的情况下明智地处理它。

为什么要使用负载共享?

设计负载平衡算法有几个问题。为了克服这些问题,我们使用负载共享算法。问题是:

  • 负载评估:它决定如何评估分布式框架中节点的工作负载。
  • 流程转移:判断流程是否可以在本地或远距离执行。
  • 静态信息交换:它决定框架如何加载可以在节点之间交换的信息。
  • 位置策略:它决定了进程迁移过程中目标中心的确定。
  • 优先级分配:它决定了在特定节点上执行一堆附近和远程进程的优先级。
  • 迁移限制策略:它决定了一个进程可以从一个集线器开始移动到下一个集线器的绝对次数。

负载分担算法包括位置策略、进程转移策略、状态信息交换策略、负载估计策略、优先级分配策略和迁移限制策略等策略。

1. 位置策略:位置策略总结了一个进程的发送方节点或接收方节点,该进程将在负载分担框架内移动。根据逐步上升并在全局范围内搜索流程的合理节点的节点类型,定位策略有以下几种:

  • 发送者优先策略:这里进程的发送者节点有优先权选择进程必须被发送到哪里。负载活跃的节点搜索负载较轻的节点,必须转移工作负载以平衡流量压力。每当一个节点的负载结果超过阈值时,它要么传达一条消息,要么任意单独测试不同的节点,以观察一个负载较轻的节点,该节点可以确认其至少一个进程。如果未找到合理的接收节点,则流程开始的节点应执行该流程。
  • Receiver-inaugurated policy:这里进程的接收者节点有优先选择接收进程的位置。在该策略中,轻负载节点搜索可以接受进程执行的活跃负载节点。每当节点上的负载低于阈值时,它就会向所有节点发送文本消息或单独测试节点以搜索主动加载的节点。如果这样的传输没有将其负载降低到正常阈值以下,则某些负载过重的节点可能会移动其进程之一。

2.流程转移政策:本政策采用全有或全无的方法。所有节点的阈值分配为 1。如果没有进程,则节点变为接收节点,如果节点超过 1,则节点变为发送节点。如果节点空闲,那么它们就不能立即接受新进程,从而滥用处理能力。为了克服这个问题,将进程转移到预计将来会空闲的节点中。有时为了忽略节点上的处理能力,负载分担算法将阈值从 1 变为 2。

3. 状态信息交换策略:在负载分担计算中,节点不需要定期交换信息,但是在负载不足或过载时必须知道不同节点的情况。因此,这里使用了两个子策略:

  • 状态变化时广播:节点只有在状态发生变化时才会广播状态信息请求。在发送方启动的位置策略中,状态信息请求仅在节点过载时由节点广播。在接收器启动的位置策略中,状态信息请求仅在节点负载不足时由节点广播。
  • 状态变化时轮询:在大型网络中执行轮询操作。它任意地向不同的节点询问状态信息,直到获得合适的状态信息或达到测试限制。

4. 负载估计策略:负载共享算法旨在避免节点空闲,但足以知道节点是被占用还是空闲。因此,这些算法通常使用计算节点上进程的绝对数量的最简单的负载估计策略。

5.优先级分配策略:它使用一些规则来确定特定节点的优先级。规则是:

  • 自私:为本地进程提供比远程进程更高的优先级。因此,它对远程进程的响应时间性能最差,而对本地进程的响应时间性能最好。
  • 利他:为远程进程提供比本地进程更高的优先级。它具有最佳的响应时间性能。
  • 中级:节点上本地和远程进程的数量决定优先级。当本地进程的数量大于或等于远程进程的数量时,本地进程的优先级更高,否则远程进程的优先级高于本地进程。

6. 迁移限制策略:该策略决定了一个进程可以移动的绝对次数。可以使用随附的两种策略之一。

  • 不受控制:当远程进程到达节点时,其处理方式与出现在节点上的进程类似,因此进程可以迁移任意次数。
  • 受控:迁移计数参数用于固定进程迁移的限制。因此,一个进程可以在这里迁移固定的次数。这消除了不受控制的策略的不稳定性。