Как ограничить пользователей N ядрами?

У меня есть SSH-сервер, на котором пользователи входят в систему для выполнения различных задач. Проблема в том, что у меня 4 ядра, и один пользователь выполняет задачи на 4. Как я могу ограничить количество ядер, которые может использовать любой данный пользователь?

Это не виртуальная машина.

ОБНОВЛЕНИЕ: Я читал /etc/security/limits.conf и видел

#*               soft    core            0
#root            hard    core            100000
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#ftp             -       chroot          /ftp
#@student        -       maxlogins       4

Я пытался настроить это так, чтобы пользователь ограничивался тремя процессами. но пользователь получает

 -bash: fork: retry: No child processes

в своем терминале.

Я начал изучать ulimit и квоту

2
задан 10 February 2014 в 04:55

2 ответа

taskset (1) может помочь вам. Он может установить основной номер для одного процесса. Вы можете использовать PS (1) , чтобы получить весь процесс целевого пользователя. Например,

housezet@arch: ~
$ ps aux | awk '/^housezet/{print $2}' | xargs -l taskset -p 0x00000001

Этот текущий процесс будет ограничивать использование только одного ядра. И если также допустимо ограничение использования процессора, вы также можете рассмотреть возможность использования cpulimit (1) .

0
ответ дан 10 February 2014 в 04:55

Я не верю, что существует какой-либо существующий инструмент, который бы справлялся с тем, что вам нужно, поскольку это не особенно легко сделать. Обработка того, какой процесс идет, где не делается в пользовательском пространстве.

Единственный способ сделать то, что вам нужно, - это использовать ulimit, чтобы установить максимальное количество процессорного времени, что помешает пользователю слишком сильно перегружать все. Вы также можете изменить уровень пользователя nice, поэтому, если конкретный пользователь сбивает процессор, вы можете снизить его приоритетность.

0
ответ дан 10 February 2014 в 04:55

Другие вопросы по тегам:

Похожие вопросы: