如何在SGE上设置每个用户正在运行的最大作业数?


9

我们正在使用SGE(Sun Grid Manager)。我们对所有用户的并发作业总数有一些限制。

我想知道是否可以为特定用户设置一个临时的,自愿的并发运行作业数量限制。

例如,用户dave将要提交500个作业,但他希望并发运行不超过100个作业,例如,因为他知道这些作业会执行大量的I / O作业,因此卡住了文件系统(不幸的是,这是事实)。

那可能吗?

Answers:


9

您可以使用定义复合体qconf -mc。说它像high_io,或者你想要什么,以及消费品领域设置YES。然后,在全局配置中qconf -me global或在特定队列中qconf -mq <queue name>设置high_io=500复杂值。现在,告诉您的用户指定-l high_io=1您想要使用的“令牌”,或者指定许多令牌。这会将并发作业的数量限制为您将复杂值设置为的值。

另一种方法是使用配额。添加一个如下所示的配额qconf -arqs

 {
        name         dave_max_slots
        description  "Limit dave to 500 slots"
        enabled      true
        limit        users {dave} to slots=500
 }

感谢卡米尔(Kamil),对于您的延迟回复深表歉意。由于我还很陌生,因此进行了一些后续跟踪qconf。关于您的第一个建议,您能说得更明确些吗?什么是“消耗品”?按照上述说明进行配置后,我只是简单地告诉用户qsub使用-l high_io=1
David B

1
从根本上讲,复杂是一种有价值的资源,可以通过-l切换到来请求作业qsub。通过将组合系统设置为可消耗,这意味着当作业请求该组合系统时,可用数量会减少。因此,如果队列中有500个high_io复合物,而一个作业请求20个,则将有480个可用于其他作业。您将像示例中那样请求复杂对象。
卡米尔·基西尔

谢谢卡米尔。抱歉,我无法投票(信誉不足)。
大卫·B
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.