具有优先级作业的负载平衡算法

时间:2012-08-21 11:29:59

标签: algorithm load-balancing

  1. 假设我可以购买X代币的容量。当我购买代币时,我一次购买它们三个月。
  2. 工作可以声明一个或多个令牌(通常最多16个)。
  3. 一份工作可能需要很长时间才能完成(几天),或者很短的时间才能完成(几分钟)。
  4. 在开始使用之前,我必须购买一定数量(X)的代币。
  5. 有些工作比其他工作更重要,即应优先考虑一些工作以快速完成。
  6. 我想在任何时候使用尽可能少的令牌。通过这种方式,我可以购买更少的代币并节省资金。
  7. 可以暂停和恢复作业。当作业暂停时,令牌可用于其他工作。
  8. 用户创建作业,并选择优先级。该算法将选择何时运行哪些作业。
  9. *可能比长期整理工作更快速完成工作。
  10. *需要很长时间才能完成的工作可能会被赋予低优先级。
  11. (*这些规则可能有例外)

    我需要建立一个调度系统,以便X尽可能小。


    一个(非常小的)例子:

    工作A需要4个代币且优先级较低,需要5天完成。 工作B花费2个代币并具有高优先级,需要1天才能完成。 工作C需要2个代币且具有高优先级,并且需要2天才能完成。

    作业A在作业B之前启动,作业C在作业C之前启动。

    解决方案: 暂停作业A并让B和C运行。 B将首先完成,C秒。然后恢复A并让它完成。

    使用的令牌总数:4。

    如果我们一次性运行所有工作(这将花费8个代币),则成本为50%。


    我应该如何制作此调度程序/优先顺序?

0 个答案:

没有答案