У меня есть SSH-сервер, на котором пользователи регистрируются для выполнения различных задач. Проблема состоит в том, что у меня есть 4 ядра, а один пользователь запускает задачи на 4. Как я могу ограничить количество ядер, которые может использовать любой пользователь?
Это не виртуальная машина.
2] UPDATE: я читал /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, и квоту
Я не верю, что существует какой-либо существующий инструмент, который бы справлялся с тем, что вам нужно, поскольку это не очень просто. Обработка этого процесса происходит там, где это не делается в пользовательском пространстве.
Единственный способ, которым я могу думать о том, что вы делаете, - использовать ulimit для установки максимального количества процессорного времени , что помешало бы пользователю слишком сильно зависнуть. Вы также можете изменить уровень пользователя nice, так что, если конкретный пользователь захлопывает CPU, вы можете снизить его вероятность.