【发布时间】:2012-01-19 17:49:57
【问题描述】:
我正在寻找一种解决方案来处理一些 Linux 软件包以实现如下所述的资源管理。我知道我可能可以编写一个守护进程来做我想做的事,但我想省去那些不平凡和冗长的工作。
我管理一台机器,该机器用于消耗大量 CPU 的持久计算。在那台机器上,几个用户可以登录并开始他们的计算。目标是优化机器负载并且每个用户都得到他公平的 CPU 时间份额。内存方面也存在类似的问题,但目前不太严重。
为了澄清我的意思,这是我的想法:
负载优化器会将所有请求的 CPU 时间分配给系统进程(最终是 root)并计算剩余容量。此容量将除以登录用户的数量。每个需要少于他的份额的用户都会得到他所要求的一切。递归直到所有用户需要的数量超过他们的份额。然后限制剩余的用户获得相等的份额,例如通过精炼。
这不必精确到瞬间。持久的计算会运行数小时,有时甚至数天。因此,如果平均 5-10 分钟的平衡是公平的,这已经是完美的用户调度。
有没有人知道一个解决方案,大致可以做到这一点?
【问题讨论】:
-
你见过像 condor 这样的批处理调度器吗?
-
Condor 看起来很有趣,特别是如果我们添加更多的计算从属。我一定会评估它以备将来使用。谢谢指点。