Я хотел бы знать, как можно использовать всю мощность ЦП, выделяя меньшее количество ядер по сравнению с физическим количеством ядер в виртуальной машине.
Я имею в виду:
Допустим, у нас есть сервер с 16 физических ядра (32 потока).
Если я создам одну виртуальную машину и сделаю виртуальный процессор 8 виртуальных ядер будет ли у меня ограничена вычислительная мощность 8 физических ядер или уровень виртуальной машины позволит полностью использовать вычислительную мощность или все 16 физических ядер?
Как это работает в VM-Ware по сравнению с Hyper-V?
Я знаю, что некоторые пользователи VM-Ware сказали, что использование виртуальных сокетов или виртуальных ядер не влияет на производительность виртуальной машины, но справедливо ли это в этом сценарии? И то же самое в случае с Hyper-V?
НЕТ, невозможно. Обычно виртуальные машины распределяют нагрузку на доступные ядра - они не меняют способ работы ядра. У вас не получится волшебным образом получить более быстрые ядра, используя меньшее количество ядер в виртуальной машине - в вашем примере у вас будет 8 физических ядер при полной нагрузке, а 8 ничего не будут делать.
Виртуализация, как обычно доступная, заключается в разделении машины на несколько виртуальных машин. Есть некоторые редкие породы, которые могут «прозрачно» объединять компьютеры в более мощный компьютер (требуя очень специального сетевого оборудования). Но ничто иное, как полная эмуляция, не смогло бы объединить ядра - и я не знаю ни одного единственного подхода к виртуализации, даже если бы я пытался пойти по этому пути.