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

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

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

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

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

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

2 ответа

Решение

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

Диспетчер задач, показывающий 10 процессоров

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

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

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

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

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

Другие вопросы по тегам