Ответ на ваш вопрос обычно лежит в большей степени в гостевых операционных системах, чем в используемом гипервизоре. Windows в течение многих лет не особо заботилась о том, была ли размещена память каким-либо определенным образом, за исключением некоторых требований к тому, чтобы она выглядела как ПК, чтобы загрузчик работал. Linux также гибок.
Hyper-V, например, выделяет память для гостевых ОС фрагментами по 2 МБ. Это сделано только для того, чтобы аппаратное обеспечение таблиц страниц в процессорах могло быть настроено на использование страниц размером 2 МБ, что более эффективно, поскольку оно использует меньше памяти для таблиц страниц и меньше записей в TLB внутри процессора.
Нет причин продолжать эту тенденцию, по крайней мере, для VMware ... То же самое и для процессоров. Не стыдно сказать, что у меня есть виртуальные машины с 3 процессорами
Я подозреваю, что каждая виртуальная машина по-прежнему использует числа, кратные четырем байтам. Не два.
Обратите внимание, что 3 МБ составляют 3072 КБ, что является кратным двум и четырем (2x1536 или 4x768), хотя это не сразу становится ясно, если посмотреть на значение 3 .
(Относительно того, почему кратно 2 или 4 байтам: доступ к памяти обычно имеет ширину 1, 2 или 4 байта.)