ESXi предоставляет гостю Windows ВСЕ выделенную ему память

Я видел это несколько раз, и я не понимаю, что происходит

Я назначил гостю Windows 200 гигабайт ОЗУ - НЕ зарезервировано.

Если посмотреть на гостя прямо сейчас, ОС показывает, что использует только около 2 гигабайт оперативной памяти.

ESXi выделил ему полные 200 гигабайт ОЗУ (хост теперь генерирует предупреждения о нехватке памяти)! Windows использует только 2 гигабайта, поэтому почему ESXi предоставил виртуальной машине все 200 гигабайт?

Это случай, когда Windows требует больше оперативной памяти, чем она использует? Как я могу устранить эту проблему?

2
задан 25 May 2016 в 02:48
1 ответ

Цитата из здесь :

A host allocates the memory specified by the Limit parameter to each
virtual machine, **unless memory is overcommitted** (emphasis mine).
ESXi never allocates more memory to a virtual machine than its specified
physical memory size.

[...]

When memory is overcommitted, each virtual machine is allocated an
amount of memory somewhere between what is specified by Reservation
and what is specified by Limit. The amount of memory granted to a
virtual machine above its reservation usually varies with the current
memory load.

Итак, если хосту не требуется больше памяти, чем есть на самом деле, чтобы удовлетворить требованиям всех работающих на нем виртуальных машин, он с радостью выделит каждой виртуальной машине всю запрошенную память, даже если она не зарезервирована; однако, если и когда произойдет чрезмерное выделение ресурсов, хост освободит часть этой памяти, чтобы освободить ее для других виртуальных машин; в этом сценарии будет освобожден столько памяти, сколько требуется нагрузке, пока не будет достигнуто зарезервированное количество для каждой виртуальной машины. Если даже после уменьшения объема выделенной ОЗУ каждой виртуальной машины до зарезервированного объема, требования к памяти для запуска другой виртуальной машины не могут быть выполнены, она не будет запущена. Конечно, если объем памяти виртуальной машины сокращен до зарезервированного объема, и этого недостаточно для правильной работы виртуальной машины, возникнут сбои и / или ошибки.


Предположим, у вас есть 300 ГБ ОЗУ и две виртуальные машины. , каждый из которых имеет ограничение в 200 ГБ. Когда вы запустите первый, он получит полные 200 ГБ. Когда вы запустите второй, хост попытается выполнить оба запроса, но, поскольку у него нет доступных 400 ГБ, он предоставит 150 ГБ каждой виртуальной машине. Затем, в зависимости от фактической загрузки этих виртуальных машин, память может быть перемещена дальше: если виртуальная машина пытается использовать 180 ГБ, в то время как другая находится на 20 ГБ, хост переместит 30 дополнительных ГБ со второй виртуальной машины на первую. 1.

Конечно, если обе виртуальные машины попытаются использовать все 200 ГБ, хост начнет как сумасшедший обмен местами; это ваш ключ к тому, чтобы добавить больше ОЗУ или переместить одну виртуальную машину в другое место.

3
ответ дан 3 December 2019 в 10:37

Теги

Похожие вопросы