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