【问题标题】:Linux: limit CPU/memory resources per user based on fair sharesLinux:基于公平份额限制每个用户的 CPU/内存资源
【发布时间】:2012-01-19 17:49:57
【问题描述】:

我正在寻找一种解决方案来处理一些 Linux 软件包以实现如下所述的资源管理。我知道我可能可以编写一个守护进程来做我想做的事,但我想省去那些不平凡和冗长的工作。

我管理一台机器,该机器用于消耗大量 CPU 的持久计算。在那台机器上,几个用户可以登录并开始他们的计算。目标是优化机器负载并且每个用户都得到他公平的 CPU 时间份额。内存方面也存在类似的问题,但目前不太严重。

为了澄清我的意思,这是我的想法:

负载优化器会将所有请求的 CPU 时间分配给系统进程(最终是 root)并计算剩余容量。此容量将除以登录用户的数量。每个需要少于他的份额的用户都会得到他所要求的一切。递归直到所有用户需要的数量超过他们的份额。然后限制剩余的用户获得相等的份额,例如通过精炼。

这不必精确到瞬间。持久的计算会运行数小时,有时甚至数天。因此,如果平均 5-10 分钟的平衡是公平的,这已经是完美的用户调度。

有没有人知道一个解决方案,大致可以做到这一点?

【问题讨论】:

  • 你见过像 condor 这样的批处理调度器吗?
  • Condor 看起来很有趣,特别是如果我们添加更多的计算从属。我一定会评估它以备将来使用。谢谢指点。

标签: linux load


【解决方案1】:

安排将用户进程分类到每个用户的 cgroup 中,然后使用 Linux 的 CFS cgroup 调度 (CONFIG_CGROUP_SCHED)。在此期间,我将推荐 systemd,因为它已经对每个用户进行了排序。

【讨论】:

  • 您可以使用标准设置。
  • cgroup 看起来很有趣。我将尝试获取有关其功能的更多信息,并查看是否值得编译合适的内核。 2.6.39 对 Debian Squeeze 来说是遥远的未来。 ;)
猜你喜欢
  • 2010-10-01
  • 2022-07-16
  • 2020-04-07
  • 1970-01-01
  • 2012-11-24
  • 1970-01-01
  • 1970-01-01
  • 2021-03-29
  • 2017-07-08
相关资源
最近更新 更多