我们有一台电脑,它的CPU有32个核心,它将被几个不同的用户用来运行程序。有没有办法限制每个用户在任何时候可以使用的核心数量,这样一个用户就不会垄断所有的CPU电源?
发布于 2019-01-09 14:05:01
虽然这个是可能的,它是复杂的,几乎肯定是一个不好的想法。如果目前只有一个用户在使用这台机器,那么限制他们使用N核是浪费资源。一个更好的方法是使用nice运行所有内容:
NAME
nice - run a program with modified scheduling priority
SYNOPSIS
nice [OPTION] [COMMAND [ARG]...]
DESCRIPTION
Run COMMAND with an adjusted niceness, which affects process scheduling. With
no COMMAND, print the current niceness. Niceness values range from -20 (most
favorable to the process) to 19 (least favorable to the process).这是一个很好的工具,可以确定进程的优先级。因此,如果只有一个用户在运行某项任务,他们将得到他们所需要的足够多的CPU时间,但是如果其他人启动了他们自己的(也是有缺陷的)作业,他们就会很好,互相分享。这样,如果您的用户都使用nice 10 command启动命令,那么没有人会占用资源(也没有人会让服务器崩溃)。
请注意,较高的好值意味着低优先级。这是一个衡量我们应该有多好,我们越好,我们分享的越多。
还请注意,这将无助于管理内存分配,它只会影响CPU调度。因此,如果多个用户启动多个内存密集型进程,您仍然会遇到问题。如果这是一个问题,您应该研究适当的排队系统,如扭矩。
https://askubuntu.com/questions/1108293
复制相似问题