При запуске моей виртуальной машины, привязка ядра ЦП всех процессов на моем хосте archlinux сбрасывается на все ядра. То же самое происходит, когда виртуальная машина останавливается.
Моя виртуальная машина использует cpu pinning, но это произошло только несколько месяцев назад. Я пробовал запустить ее с помощью virt-manager и virsh, оба делают это таким образом.
Я читал о cgroups, но там не сказано, что это когда-либо коснется настроек affinity.
текущая версия libvirt: 1:7.5.0-1
Есть много тем о изоляциях процессоров, защите ядер и многом другом для игровых виртуальных машин, но я не понимаю, почему обычное соответствие ядер должно сбрасываться. Есть ли способ узнать, что вызывает это? Я обычно устанавливаю соответствие с помощью taskset. Возможно, это должно быть новой функцией, но я не могу ее найти.
решение1
Действительно, это были cgroups!
Точнее, cgroups2. Вероятно, "баг" появился, когда мой дистрибутив Arch Linux изменил cgroups.
«Можно явно отключить использование контроллера, даже если он смонтирован, с помощью файла конфигурации /etc/libvirt/qemu.conf».https://libvirt.org/cgroups.html#legacyLayout. Но это вообще не сработало для меня. Он просто создал процессорные наборы с использованием cgroups (интересно, почему).
Однако для меня эта проблема решена, поскольку мы можем просто собирать ядра без процессорных наборов (или даже без cgroups вообще). Примечание:Вы можете сделать это безопасно, все настроенные основные контакты сохранятся.
Если у вас есть лучшие решения или идеи о том, как будет работать конфигурация в libvirt, мы будем рады вас видеть!