限制用户的CPU数量

时间:2016-03-19 19:15:07

标签: linux kernel cpu-usage

要限制用户的可用核心数,我决定使用cgroup。因此,通过创建一个组,我必须为cpu.shares设置一个数字。假设系统中有32个核心,我想将用户限制为仅4个核心。该参数的正确值是什么?

据我了解,由于总CPU时间为3200,我必须使用400.我是否正确?

1 个答案:

答案 0 :(得分:1)

首先,您应该了解gulp-connect未对核心数量设置限制。它是通用参数,用于计算CFS调度程序中消耗的CPU资源。

即。如果系统中有两个应用程序都花费1秒的CPU时间,CFS会将其cpu.shares设置为10 9 / vruntime,这样它们都需要更多的CPU时间,他们有平等的机会获得它。

现在,如果您为第一次申请将cpu.shares调整为较小的值(即cpu.shares),则会128 = 10 9 / 128 = 7.8 * 10 6 ,而第二个(未经调整的股票价值)将获得vruntime = 10 9 / 1024 = 0.9 * 10 6 。具有较小vruntime的进程将被选择在CPU上执行,因此第二个应用程序可以再执行7秒,除非CPU将被提供给第一个应用程序。

请注意,此优先级仅适用于第二个CPU贪婪的应用程序。如果只有"限制的应用程序"用户正在工作,CFS调度程序会将它们放在CPU上,因此它们可以占用所有32个核心。

最后,回答最初的问题,你的任务纯粹是数学的:

vruntime

您应该将 x 4 -------- = ---- 1024 + x 32 设置为 146