gpt4 book ai didi

linux - 限制用户的 CPU 数量

转载 作者:太空宇宙 更新时间:2023-11-04 10:38:53 24 4
gpt4 key购买 nike

为了限制用户的可用内核数量,我决定使用 cgroup。因此,通过创建一个组,我必须为 cpu.shares 设置一个数字。假设系统中有 32 个内核,我想限制一个用户只能使用 4 个内核。该参数的正确值是多少?

据我所知,我必须使用 400,因为总 CPU 时间是 3200。我是否正确?

最佳答案

首先,您应该了解 cpu.shares 不会对核心数量设置硬性限制。它是通用参数,用于计算 CFS 调度程序中消耗的 CPU 资源。

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

现在,如果您将第一个应用程序的 cpu.shares 调整为较小的值(即 128),它将得到 vruntime = 10< sup>9/128 = 7.8 * 106,而第二个(未调整的份额值)将得到 vruntime = 109/1024 = 0.9 * 106vruntime 较小的进程将首先在 CPU 上执行,因此第二个应用程序可以再执行 7 秒,除非将 CPU 分配给第一个应用程序。

请注意,此优先级仅在存在第二个 CPU 贪婪应用程序时有效。如果只有“受限”用户的应用程序在运行,CFS 调度程序会将它们放在 CPU 上,这样它们就可以占用全部 32 个内核。

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

     x        4
-------- = ----
1024 + x 32

您应该将 cpu.shares 设置为 146

关于linux - 限制用户的 CPU 数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36106022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com