📜  负载分配算法的组成部分 |分布式系统

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

负载分配算法的组成部分 |分布式系统

介绍 :
分布式调度的目标是以优化整体系统性能同时最大化资源利用率的方式在可用资源之间分配系统负载。
主要概念是将工作负载从负载大的机器转移到空闲或负载轻的机器上。
为了充分利用分布式系统的计算能力,需要良好的资源分配方案。分布式调度程序是 DOS 的资源管理组件,它专注于以合理和透明的方式在计算机之间分散系统负载。目标是最大化系统的整体性能。本地分布式系统由一组通过局域网连接的独立计算机组成。用户提交任务以在其主机上进行处理。由于任务的不可预测性及其随机的 CPU 服务时间,在这样的环境中负载分配是必不可少的。

资源队列的长度,尤其是 CPU 队列的长度,是有用的需求指标,因为它们与任务响应时间密切相关。确定队列的长度也相当简单。然而,过度简化调度决策存在风险。

例如,许多远程服务器可能会同时注意到某个特定站点的 CPU 队列长度很短,并启动了大量进程传输。因此,该位置可能会因流程而负担过重,其最初的反应可能是尝试重新定位它们。我们不想通过做出导致迁移活动增加的错误决策来浪费资源(CPU 时间和带宽),因为迁移是一个昂贵的过程。因此,我们需要合适的负载分配算法。

提供静态、动态和自适应负载分配算法。
静态表示基于先验知识(例如通过对应用程序图形模型的分析收集到的知识),将进程分配给处理器的决策硬连线到算法中。
动态算法使用系统状态信息来做出调度决策,允许它们在运行时利用未充分利用的系统资源,同时产生收集系统数据的成本。
为了适应系统负载条件,自适应算法会改变其算法的参数。当系统需求或通信很高时,它可能会降低调度决策所需的信息量。

负载分配算法的组成部分:
负载分配算法有 4 个组件——



  • 转会政策 –
    确定节点是否处于适合任务转移的状态。
  • 流程选择政策 –
    确定要转移的任务。
  • 站点位置政策 –
    确定任务在选择转移时应转移到的节点。
  • 信息政策 –
    它负责启动系统状态数据的收集。

转移政策需要有关当地 noes 状态的信息才能做出决定。位置策略需要有关远程节点状态的信息才能做出决定。

1. 转会政策 –
门槛政策构成了转移政策的很大一部分。阈值以负载为单位进行测量。当新任务在该节点开始并且节点的负载超过阈值T时,转移策略确定该节点是发送方。如果节点的负载低于T,转移策略确定该节点可以用作远程任务接收者。

2. 选拔政策——
选择策略决定应该转移节点中的哪个任务(由转移策略决定)。如果选择策略无法在节点中找到合适的作业,则传输过程将暂停,直到传输策略发出信号表明该站点再次是发送者。选择策略在传输策略确定该节点是发送方后选择一个任务进行传输。

  • 最直接的方法是选择最近生成的任务,该任务通过超过负载阈值导致节点成为发送方。
  • 另一方面,只有当其响应时间因转移而改善时,才会转移作业。

在任务选择方法中要考虑的其他标准是:首先,传输施加的开销应尽可能低,其次,所选任务进行的与位置相关的调用次数应尽可能低。

3. 位置政策 –
位置策略的工作是发现合适的节点进行共享。在传输策略确定应该发送任务之后,位置策略必须确定任务应该发送到哪里。这将基于通过信息政策收集的数据。轮询是一种广泛使用的用于定位合适节点的方法。在轮询中,一个节点轮询另一个节点以查看它是否是合适的负载共享节点。节点可以按顺序或同时轮询。站点以顺序或并行方式轮询其他站点,以查看它们是否可以接受传输和/或它们是否准备接受传输。对于轮询,可以根据先前轮询期间获得的信息随机或更有选择性地选择节点。轮询的站点数量可能会发生变化。

4. 信息政策 –
信息策略负责确定何时应该收集有关系统中其他节点状态的信息。大多数信息政策属于以下三类之一:

  • 需求驱动 -
    使用发送者发起或接收者发起的轮询技术,一个节点只有在它希望参与发送或接收任务时才能获得其他节点的状态。由于他们的行动取决于系统的状态,需求驱动的政策本质上是适应性和动态的。这里的策略可以是发送者主动:发送者寻找接收者来转移负载,接收者发起——接收者从发送者那里请求负载,对称发起——发送者和接收者的组合发起。
  • 定期——
    节点定期交换数据。为了通知本地化算法,每个站点都将拥有重要的全球资源利用历史。在大型系统负载下,负载分配的好处可以忽略不计,因此定期交换信息可能是不必要的开销。
  • 状态——变化——驱动——
     当一个节点的状态改变了特定的量时,它会发出状态信息。该数据可以转发到集中式负载调度点或与对等方共享。它不收集有关其他节点的信息,例如需求驱动的策略。此策略不会更改其操作以响应系统状态的变化。例如,如果系统已经过载,定期交换系统状态信息会加剧问题。