Изоляция выбранных процессоров на этапе загрузки ядра?

Добрый день, ${HabraUser}!


Я задался вопросом: как на SMP-системе освободить несколько процессоров для определённых задач так, чтобы другие таски обрабатывались строго на остальных. Немного поискав, нашёл true Linux way — параметр ядра isolcpus. Согласно документации, данный параметр предоставляет правильное решение для изоляции списка процессоров, нежели проход с cpuset наголо по всем процессам.


Как полагается, дописал «isolcpus=4-7» в /etc/default/grub, затем sudo update-grub и уже после перезагрузка. Однако, радость была преждевременной: отчего-то cpu affinity остался в прежнем виде.


PS: Debian GNU/Linux Wheezy amd64, ядро 3.10.11, используется BFS.
  • Вопрос задан
  • 4023 просмотра
Решения вопроса 1
KrD
@KrD Автор вопроса
Решение найдено куда более гибкое: использовать cgroups для создания двух групп z0 и z1.

# cd /sys/fs/cgroup/cpuset
# egrep -m1 -He^ cpuset.{cpus,cpu_exclusive,mems,mem_exclusive}
cpuset.cpus:0-7
cpuset.cpu_exclusive:1
cpuset.mems:0
cpuset.mem_exclusive:1

# cd /sys/fs/cgroup/cpuset/z0
# egrep -m1 -He^ cpuset.{cpus,cpu_exclusive,mems,mem_exclusive}
cpuset.cpus:0-3
cpuset.cpu_exclusive:1
cpuset.mems:0
cpuset.mem_exclusive:0

# cd /sys/fs/cgroup/cpuset/z1
# egrep -m1 -He^ cpuset.{cpus,cpu_exclusive,mems,mem_exclusive}
cpuset.cpus:4-7
cpuset.cpu_exclusive:1
cpuset.mems:0
cpuset.mem_exclusive:0
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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