Ограничения ЦП кажутся очевидным ответом, но эффективным ответом является использование вместо этого ограничений памяти. Такие инструменты, как ssh, как правило, имеют постоянный профиль памяти, поэтому можно найти подходящий ulimit для памяти, который не повлияет на них, в то время как большинство реальных вычислительных приложений предъявляют большие требования к памяти, которые быстро превышают лимит.
Кроме того, операционная система, как правило, довольно хорошо балансирует использование процессора между процессами при интенсивном использовании процессора. Также может потребоваться общее количество процессов для каждого пользователя.
Если вы решительно настроены на ограничение использования ЦП, вместо жесткого ограничения ЦП можно отказаться от тяжелых процессов ЦП или использовать cgroups для их дросселирования.
Если вы хотите быть драконовским, используйте скрипт в cron, который использует пс -о
и фильтровать по pcpu, общему использованию процессора и вносить в белый список некоторые команды, такие как ssh, screen, tmux и системные пользователи, и автоматически убивать оставшиеся подозрительные процессы. (Я рекомендую распечатать кандидатов и просмотреть их вручную в течение нескольких месяцев, прежде чем щелкнуть выключателем.)
Тем не менее, ключевым моментом является обучение пользователей использованию slurm. Вещи, подобные приведенному выше, могут быть формой жесткого убеждения для достижения этой цели.