Чи є причина, щоб надати VM круглий об'єм бази-2 (2048MB, 4096MB тощо)?


26

Заголовок майже все це говорить, чи є якась перевага в наданні VM 2048MB пам’яті замість округлення до базової-10 та 2000MB?

Відповіді:


10

Фізична пам'ять на сервері кратна потужності дві, тому вона буде рівномірною, якщо використовувати інші кратні. Можливо, є деякі неймовірно незначні поліпшення SLAT і такі, якщо вони також правильно вирівняні. Інакше ні.


Сторінки - це 4 KiB або 2 MiB, в основному - немає справжніх проблем з рівним нарізанням навіть 1234 MiB, чи не так?
poige

1
@poige Як я знаю, так, жодних питань ... Нам дійсно потрібен хтось, хто знає SLAT (та ін.) всередині та зовні для остаточної відповіді.
Кріс С

13

Hyper-V внутрішньо розподіляє пам'ять у 2МБ шматки. Сам гіпервізор використовує записи таблиці на 2 МБ для ефективності, якщо це можливо, якщо ваш процесор підтримує переклад адрес другого рівня (SLAT.) Це стане можливим майже для будь-якого ВМ з вимкненою динамічною пам'яттю.

Крім цього, це не має значення.


7

Просто для уточнення того, що сказали інші відповіді; обмеження, яке визначається тут, в основному стосується програмного забезпечення вашої віртуальної машини, а не гостя. Тобто, коли ваша гостьова ОС вимагає сторінки пам'яті, вона робить це з визначеними кроками (тобто, 4 КБ). Отже, якщо ви визначили, що віртуальна машина має 4097 КБ оперативної пам’яті, а ваш VM-хостинг використовує розмір сторінки 4 КБ, то, ймовірно, віртуальній машині буде надано в цілому 4100 КБ оперативної пам’яті.

Якщо гостьова ОС, однак, використовувала розмір сторінки в 1 КБ, а ваша хост-ОС використовувала розмір сторінки 4 КБ, то хост-операція, по суті, надала б 4КБ простору, з яких буде використовуватися лише 1 КБ, але це виходить з усіх шматки пам’яті. Таким чином, ви ніколи не будете витрачати помітну кількість місця.

Зауважимо, вирівнювання між хост-операційною системою та гостьовою ОС тут не є фактором, за винятком останніх "біт".


Це не відповідає дійсності за певних обставин: Наприклад, програмне забезпечення VM може зарезервувати всю запитувану кількість оперативної пам’яті (плюс усе, що потрібно для відеокарти та інших помилок) або при використанні апаратної підтримки вкладених сторінок / розширених таблиць сторінок - гостя ефективно управляє фізичними сторінками пам'яті за допомогою апаратного забезпечення процесора. Крім того, резервування 4097 КБ пам'яті, швидше за все, виділить 4100 КБ фізичної оперативної пам’яті, хоча лише 4097 Кбайт насправді адресується гостьовою операційною системою.
Гойю

2
Я не бачу, як те, що ви сказали, суперечить моїй відповіді. Не могли б ви детальніше розробити?
Ендрю М.

Це, можливо, було вашим наміром, проте, читаючи вашу відповідь як «ви, по суті, ніколи не зможете використовувати той додатковий 1 КБ» - я спробував уточнити, що гостьова ОС може (теоретично) використовувати цю оперативну пам’ять, хоча 3/4 частини фізична сторінка, ймовірно, буде недоторканою. Ваша відповідь не дуже чітка для мене. Я також намагався надати деякі ключові слова / технології, які мали б вплив на ці рішення. Питання вирівнювання сторінки - це лише одна частина компромісів, яку потрібно було б врахувати, і я вважав, що відповідь можна покращити, зазначивши конкретні наслідки для неї.
Гойю

Ах, я бачу, де я пішов не так. Це насправді, як я це передбачав, але, мабуть, я його позбувся в своїх різних редакціях. Я оновив його, щоб уточнити цю точку. :)
Андрій М.

3

Я підозрюю, що це питання традиції, і співвідносити його з тим, як будуються фізичні системи. Фізичні системи мають пам'ять у базовій кількості 2 (і, щонайменше, з кожним x86, коли-небудь зробленим, це правда), і є певна ймовірність, якщо не багато ОС будуть очікувати цього в управлінні пам'яттю.

Словом, це насправді тому, що віртуальна машина відображає реальну машину, а не гіпотетичну. Не дуже технічна відповідь, але я думаю, що це справжня


1

Не зовсім. Динамічна пам'ять Hyper-v виділяє лише те, що система в будь-якому разі використовує. Сума, яку ви присвоюєте, є початковою вартістю. Якщо ви не використовуєте динамічну пам'ять, єдина перевага, яке я бачу, - це краще вирівняти фізичну пам'ять до віртуальної.



-1. Дивіться, Hyper-V не має динамічної пам’яті, ЯКЩО НІКОЙ НЕ КОНФІГУРОВАНО. І вгадайте, що - дещо здається, це не має сенсу використовувати (алокація потребує часу, тому, наприклад, сервер бази даних хоче все це в мультимедіа, наприклад). Як така, загальна відповідь не є актуальною і - насправді - зовсім не тим, що задавали.
TomTom
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.