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

Может ли количество назначенных ЦП KVM отличаться от количества ЦП физических хостов?

я прочитал этот вопрос. Я уже знал, что могу, например, иметь четырехъядерный компьютер с четырьмя гостями, у каждого из которых будет два виртуальных процессора. Поскольку все они не требуют постоянной загрузки ЦП на 100%, планировщик справится с этим за меня.

Мой вопрос о том, как это связано с ситуацией переключения при отказе или миграции;

Если на хосте host1 два двухъядерных процессора, и я назначаю гостю 1 четыре виртуальных процессора (чтобы он имел доступ ко всем четырем физическим ядрам), что произойдет, если я попытаюсь перенести его на хост2, который имеет только один двухъядерный процессор?

Может ли qemu-kvm эмулировать больше виртуальных ЦП, чем есть физических? Или мне придется выключить виртуальную машину, изменить назначение ЦП, перенести его, а затем загрузить обратно (чтобы не было живой миграции)?

Большое спасибо.

Да, вы можете настроить и запустить больше виртуальных процессоров, чем доступно физических ядер. Это простаивающая гость KVM с Windows Server 2008 (x86, немецкий), показывающая 10 процессоров на 4-ядерном однопроцессорном компьютере Intel X3210:

Но вы должны делать это только тогда, когда знаете, что делаете:

Во-первых, это будет сопровождаться накладными расходами на синхронизацию большего количества виртуальных процессоров без преимущества наличия дополнительных исполнительных модулей для выполнения нагрузки. Еще более значительными накладными расходами является то, что вашему хосту придется выполнять переключение контекста чаще, чем это необходимо, когда количество потоков, запланированных для немедленного выполнения, превышает количество доступных физических процессоров. Планировщик потоков гостевой ОС будет работать против планировщика гипервизора, что приведет к серьезному снижению производительности.

Поэтому, если вы перенесли виртуальную машину на хост с меньшим количеством pCPU, вы должны отключить несколько vCPU, чтобы соответствовать количеству доступных pCPU. По крайней мере, с Linux это можно было сделать без перезагрузки путем переключения /sys/devices/system/cpu/cpu<X>/online.

Другой теоретический подход к уменьшению количества ЦП в работающей системе будет включать использование ЦП в горячем режиме, но поддержка этой функции в ОС довольно редка, и KVM также не позволит перенастроить количество ЦП в режиме онлайн.

проверьте мои последние комментарии, что произойдет, если произойдет миграция или если у вас недораспределение vcpu. KVM и сопоставление виртуального и физического ЦП я объясняю