Можно ли установить привязку процессора для конкретного пользователя?
Я имею в виду, есть ли у них какой-либо способ установить привязку к процессору для конкретного пользователя, для всего его текущего запущенного процесса или для процесса, который он запустит позже?
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
Дочерние элементы связанных процессов останутся связанными с этим процессором.