Я считаю, что это неправильное понимание флага cpu_exclusive, как и я. Вот документ https://www.kernel.org/doc/Documentation/cgroup-v1/cpusets.txt, цитата:
If a cpuset is cpu or mem exclusive, no other cpuset, other than
a direct ancestor or descendant, may share any of the same CPUs or
Memory Nodes.
одна из возможных причин, по которой у вас есть bash: echo: write error: Invalid argument
, заключается в том, что у вас включен какой-либо другой cpuset cgroup, и он конфликтует с вашими операциями echo 1 > my_cpuset/cpuset.cpu_exclusive
, пожалуйста, запустите find . -name cpuset.cpus | xargs cat
, чтобы получить список всех целевых процессоров вашей группы.
Предположим, у вас есть 12 процессоров, если вы хотите установить cpu_exclusive из my_cpuset
, вам необходимо тщательно изменить все остальные группы для использования процессоров, например. 0-7, затем установите для процессора my_cpuset
значение 8-11. После всех этих конфигураций процессора вы можете установить cpu_exclusive равным 1.
Но, тем не менее, другой процесс все еще может использовать процессор 8-11. Только задачи, принадлежащие другим группам , не будут использовать процессор 8-11
для меня у меня запущен какой-то докер-контейнер, который мешает мне установить мой процессор cpu_exclusive
с ядром doc, я не думаю, что можно использовать cpus исключительно самой cgroup. Один из подходов (я знаю, что этот подход работает на производстве) заключается в том, что мы изолируем процессор и сами управляем сродством / процессором процессора