Можно ли установить привязку процессора для конкретного пользователя?

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

2 ответа

Решение

Да, это возможно

Я бы запустил процессы пользователя в группу, состоящую из ядра (ий) процессора, которое вы хотите использовать. В зависимости от вашей версии RHEL (5 против 6), вы можете использовать экраны ЦП через cpusets/cset в EL5 или попробовать подход cgroup, описанный в EL6. В последнем примере используется /etc/cgrules.conf файл, который определяет правила для ресурсов cgroup (например, все процессы, принадлежащие Jerome, будут выполняться в указанной cgroup). Первый позволяет выполнять процессы непосредственно в экран процессора.

Для вашего примера использования cset Я бы просто запустил оболочку bash для пользователя в правый экран процессора. Все их дочерние процессы будут содержаться внутри. Смотрите здесь

Следующий маленький bash-скрипт сделает это:

u=username # do not set this to root!
c=logical processor number you want to bind to
for p in $(pgrep -u $u)
  do
    taskset -cp $c $p
done

Дочерние элементы связанных процессов останутся связанными с этим процессором.

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