📜  分布式系统全局调度算法的特点

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

分布式系统全局调度算法的特点

在本文中,我们将了解分布式系统中优秀调度算法的特点。

容错:

当系统节点崩溃或暂时崩溃时,不应停止一个好的全局调度算法。即使节点被多个节点分隔,算法配置也应该是均匀的。

可扩展性:

一个好的全局调度算法应该用于营销,这意味着即使节点数量增加,该算法也应该运行良好。调度算法将查询损坏系统中所有类别的工作负载,并选择配置负载最小的节点。对于分布式应用程序,配置算法将平衡节点之间的负载,但情况并非如此,分配时效率更高的节点将具有更好的响应时间,而负载较少的节点可能具有负响应时间。所以应该共享负载而不是平衡,即节点中的资源应该在节点之间共享,直到正在执行的任务不受影响。

没有关于过程的先验知识:

调度算法的工作基于进程的特征和资源需求,这些信息应该由用户提供。这显然会给用户带来额外的开销,因此一个好的全局调度算法应该需要更少的先验知识。

快速决策能力:

调度算法应该很快,并且应该在更短的时间内提供最好的最优决策。一个好的进程调度算法必须快速决定将进程分配给处理器。这是算法的一个极其重要的方面,并使许多潜在的解决方案不合适。例如,通过数学程序对系统进行建模并在线求解的算法是不合适的,因为它不满足此要求。因此,在提供接近最优结果的同时需要较少计算工作的启发式方法通常比穷举(最优)解决方案方法更可取。



稳定:

应该防止无用的进程迁移,即如果节点 n1 空闲并且 n2 和 n3 有多个进程,则节点 n2 和节点 n2 将向节点 n1 发送进程,导致节点 n1 过载,节点 n1 会将这些进程移动到其他节点。这对系统来说是一个无用的开销,所以好的调度算法应该是稳定的并防止无用的迁移。

本质上是动态的:

过程分配应该能够意味着分配应该基于系统的当前负载而不是基于特定的计划条件。调度程序还应该能够将进程从一个节点移动到另一个副本,以便根据当前系统负载进行分配。