Как я могу ограничить количество ядер ЦП, которые пользователь может использовать в любой момент в Linux?

С помощью zsh вы можете легко настроить подсказки с правой стороны с помощью RPROMPT параметр (альтернативно RPS1 ). Предполагая, что у вас уже есть способ получить статус батареи, скажем, с помощью команды под названием batstat , вам просто нужно установить следующее в вашем ~ / .zshrc :

RPROMPT='$(batstat)'

Приглашение будет отображаться с правой стороны в той же строке, что и последняя строка левого приглашения, то есть в строке, где изначально находится курсор ввода.Многострочное приглашение с правой стороны невозможно. Если вы наберете команду достаточно долго, чтобы вызвать приглашение справа, zsh скроет ее автоматически.

2
02.06.2017, 07:57
1 ответ

Насколько я знаю, вы не можете сделать это, кроме как использовать Docker в качестве виртуальной среды и ограничить весь контейнер выбранными ядрами. Пример:

docker run --cpuset-cpus="0"

В большинстве случаев вас не следует заставлять использовать такое решение. Если у одного из пользователей возникают проблемы, используйте /etc/security/limits.conf, добавив запись :

.
username    -       priority        19

Это должно заставить все пользовательские процессы работать с приоритетом 19 (самым низким ), и вы, даже при потреблении большого количества ЦП, не должны мешать другим программам на машине.

Также, если речь идет об одном процессе (, а не о пользователе ), то можно использовать niceили cpulimit/cgroups

0
27.01.2020, 22:39

Теги

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