Назад | Перейти на главную страницу

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

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

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

Я бы выполнял пользовательские процессы в 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

Потомки связанных процессов останутся привязанными к этому набору процессоров.