Память виртуального сервера не мощность / кратная 2

В старые времена (до виртуализации) память приходилась на степени, кратные 2, потому что именно так производится память. В настоящее время, когда мы создаем виртуальные серверы, которые не имеют реальной физической памяти, люди все еще создают их, используя степени / кратные 2.

Есть ли какая-либо причина продолжать делать это (выступление или другие) или это просто то, что люди делают, потому что к этому они привыкли?

3 ответа

Нет причин продолжать эту тенденцию, по крайней мере, для VMware... То же самое для процессоров. Мне не стыдно сказать, что у меня есть 3-х процессорные виртуальные машины.

Я подозреваю, что каждый продукт VM все еще использует кратные четыре байта. Не два.

Обратите внимание, что 3 МБ - это 3072 КБ, что кратно двум и четырем (2x1536 или 4x768), хотя это не сразу понятно, если взглянуть на значение 3.

(Относительно того, почему кратно 2 или 4 байта: доступ к памяти обычно составляет 1, 2 или 4 байта.)

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

Hyper-V, например, выделяет память для гостевых ОС в виде фрагментов по 2 МБ. Это делается только для того, чтобы аппаратное обеспечение таблицы страниц в процессорах можно было настроить на использование страниц размером 2 МБ, что более эффективно, так как использует меньше памяти для таблиц страниц и меньше записей в TLB внутри процессора.

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