Я публикую это здесь, потому что то, что я нашел по этой теме, либо устарело, либо неполно, либо не подходит по разным причинам.
Я давно хотел узнать, как сопоставить определенные виртуальные ЦП с определенной виртуальной машиной (которой требуется максимально возможная производительность ЦП и как можно меньше блокировок ЦП/переключений контекста), в то время как в том же узле есть другие виртуальные машины, которые не могут получить доступ к закрепленным ядрам (они должны быть доступны только для определенной виртуальной машины), и распределение ЦП для которых выполняется планировщиком «по умолчанию».
В настоящее время я использую Proxmox (только с использованием KVM), обычно последнюю версию в ветке pvetest и последнее ядро 3.X.
Для моих конкретных нужд, вместо того, чтобы изучать, как это сделать в моей текущей системе, я бы рассмотрел переход на другие системы или даже гипервизоры, которые позволяют расширенное управление распределением ЦП для виртуальных машин. Мой бюджет на платные решения близок к нулю, не исключая их все с самого начала, но они должны быть очень дешевыми, чтобы их рассматривать.
Заранее большое спасибо и надеюсь, что (многие возможные) ответы на этот вопрос будут полезны многим другим людям.
Эта функция может быть полезна для пользователей/администраторов хостов виртуализации (по любой причине, в моем случае потому, что я использую разные операционные системы), где большинству виртуальных машин требуется малое время ЦП, но есть одна (или несколько), которым необходимо гарантированно высокое время ЦП.
решение1
Кажется, у proxmox уже есть похожие опции.
https://forum.proxmox.com/threads/numa-config-option.21313/
Да, он будет использовать закрепление ЦП (привязанность). Насколько я понимаю, включение NUMA изменит алгоритм планирования таким образом, что теперь он будет знать об узлах NUMA на базовом физическом ЦП. Таким образом, будет предпринята попытка сохранить планирование vCPU в пределах одного и того же узла NUMA, когда это возможно.